柯南找不到用于指定设置,选项和依赖项的特定软件包

时间:2020-01-27 19:37:30

标签: c gcc mingw cross-platform conan

我正在使用Jetbrains CLion 2019.3 ,MinGW 8.1 和柯南C / C ++软件包管理器 1.21.1 <来开发一个小型C可执行项目。 / em>。我正在刷新有关C的知识,并想学习诸如Conan之类的新工具。我的主要开发环境是Windows,但是该项目旨在跨平台。我也希望能够在Linux / Unix上构建和运行该应用程序。

由于我的应用程序需要使用HMACSHA1计算签名,因此我想使用OpenSSL库,因此我在OpenSSL/1.1.1a@conan/stable的{​​{1}}部分中添加了requires包文件,并且我还为conanfile.txt创建了柯南配置文件,该配置文件具有以下选项:

MinGW

toolchain=$MINGW64_PATH target_host=x86_64-w64-mingw32 cc_compiler=gcc cxx_compiler=g++ [env] CONAN_CMAKE_FIND_ROOT_PATH=$toolchain CHOST=$target_host AR=$target_host-ar AS=$target_host-as RANLIB=$target_host-ranlib CC=$target_host-$cc_compiler CXX=$target_host-$cxx_compiler STRIP=$target_host-strip RC=$target_host-windres [settings] os_build=Windows arch_build=x86_64 # We are cross-building to Windows os=Windows arch=x86_64 compiler=gcc # Adjust to the gcc version of your MinGW package compiler.version=8.1 compiler.libcxx=libstdc++11 build_type=Release 指向我的MinGW安装文件夹。

运行MINGW64_PATH时,它会抱怨缺少一个不存在的程序包(显然是OpenSSL的依赖程序包):

conan install

由于我是使用柯南的菜鸟,所以我不知道如何解决此问题。要解决此问题需要做什么,我也可以自己解决,还是需要软件包作者的帮助?

我在https://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package处发现了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: eb34f13b437ddfd63abb1f884c4b8886c48b74cd ERROR: 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" 错误的描述,但没有太大帮助。

1 个答案:

答案 0 :(得分:4)

所以我将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,但是在您的设置和选项之后,它没有找到预构建的软件包。

好吧,由于需求不足,“柯南中心索引”中未使用MingW,因此所有supported platforms and configurations都在Wiki中列出。但是这个特定的配方应该支持MingW,因为当它成为Conan社区的一部分时,MingW就会出现在要制作的包装清单中。

我会说,您可以改用1.1.1d,它比1.1.1a更新和安全。