我正在使用Jetbrains CLion 2019.3,MinGW 8.1和Conan C / C ++ Package Manager 1.21.1进行小型C可执行项目。我正在刷新有关C的知识,并想了解诸如Conan之类的新工具。我的主要开发环境是Windows,但是该项目旨在实现跨平台。我也希望能够在Linux / Unix上构建和运行该应用程序。由于我的应用程序需要使用HMACSHA1计算签名,因此我想使用OpenSSL库,因此我在OpenSSL/1.1.1a@conan/stable文件的requires部分中添加了conanfile.txt包,并且还为具有以下选项:toolchain=$MINGW64_PATHtarget_host=x86_64-w64-mingw32cc_compiler=gcccxx_compiler=g++[env]CONAN_CMAKE_FIND_ROOT_PATH=$toolchainCHOST=$target_hostAR=$target_host-arAS=$target_host-asRANLIB=$target_host-ranlibCC=$target_host-$cc_compilerCXX=$target_host-$cxx_compilerSTRIP=$target_host-stripRC=$target_host-windres[settings]os_build=Windowsarch_build=x86_64# We are cross-building to Windowsos=Windowsarch=x86_64compiler=gcc# Adjust to the gcc version of your MinGW packagecompiler.version=8.1compiler.libcxx=libstdc++11build_type=ReleaseMinGW指向我的MinGW安装文件夹。运行MINGW64_PATH时,它会抱怨缺少一个不存在的程序包(显然是OpenSSL的依赖程序包):zlib/1.2.11@conan/stable: WARN: Can't find a 'zlib/1.2.11@conan/stable' package for the specified settings, options and dependencies:- Settings: arch=x86_64, build_type=Release, compiler=gcc, compiler.version=8.1, os=Windows- Options: minizip=False, shared=False- Dependencies:- Package ID: eb34f13b437ddfd63abb1f884c4b8886c48b74cdERROR: Missing prebuilt package for 'zlib/1.2.11@conan/stable'Try to build it from sources with "--build zlib"Or read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package"由于我是使用柯南的菜鸟,因此我不知道如何解决此问题。要解决此问题需要做些什么,我也可以自己解决此问题,还是需要软件包作者的帮助?我在https://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package处找到了conan install错误的描述,但没有太大帮助。 (adsbygoogle = window.adsbygoogle || []).push({}); 最佳答案 所以我将OpenSSL/1.1.1a@conan/stable包添加到了需求中那是软件包已过时,您可以在Conan Community存储库中检查它。您应该改为尝试openssl/1.1.1a@,它由新的Conan Center Index维护。conan install openssl/1.1.1d@命名空间在哪里?它已被删除,请查看more information about recipes。  由于我是使用柯南的菜鸟,因此我不知道如何解决此问题。要解决此问题需要做些什么,我也可以自己解决此问题,还是需要软件包作者的帮助?按照FAQ的建议,您应该自己构建,运行错误消息提出的命令:conan install openssl/1.1.1a@ --build zlib但是我敢肯定这还不够,您也需要构建OpenSSL。因此,您所处的最佳方法是:conan install openssl/1.1.1a@ --build missing现在,柯南将从源头构建任何不在服务器端预先构建的东西。总而言之,这不是错误,就像有些东西坏了。当您要求提供OpenSSL 1.1.1a时,柯南在Conan Center上找到了配方,它解释了如何构建OpenSSL,但是,按照您的设置和选项,它不是您的预构建包。好吧,由于需求不足,因此在Conan Center Index中没有使用MingW,因此所有supported platforms and configurations都在Wiki中列出。但是这个特定的配方应该支持MingW,因为当它成为Conan社区的一部分时,MingW出现在了建筑的包装清单中。我会说,您可以改用1.1.1d,它比1.1.1a更新和安全。 (adsbygoogle = window.adsbygoogle || []).push({});
10-06 06:35