柯南找不到指定设置、选项和依赖项的特定包

Conan cannot find a certain package for the specified settings, options and dependencies

我正在使用 Jetbrains CLion 2019.3、MinGW 8.1 和 Conan C/C 开发一个小型 C 可执行项目]++ 包管理器 1.21.1。我正在更新我对 C 的知识,并想了解像柯南这样的新工具。我的主要开发环境是Windows,但是这个项目是为了跨平台;我也希望能够在 Linux/Unix 上构建和 运行 应用程序。

由于我的应用程序需要使用 HMACSHA1 计算签名,我想使用 OpenSSL 库,因此我将 OpenSSL/1.1.1a@conan/stable 包添加到 [=15] 的 requires 部分=] 文件,我还为 MinGW 创建了一个 Conan 配置文件,其中包含以下选项:

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

MINGW64_PATH指向我的MinGW安装文件夹。

当运行ning conan install时它抱怨缺少一个不存在的包(显然是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: 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"

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

我在 https://docs.conan.io/en/latest/faq/troubleshooting.html#error-missing-prebuilt-package 找到了 Missing prebuilt package 错误的描述,但没有多大帮助。

so I added the OpenSSL/1.1.1a@conan/stable package to the requires

那个包已经过时了,你可以在Conan Community repository. You should try openssl/1.1.1a@ instead, which is maintained by the new Conan Center Index上查看。

conan install openssl/1.1.1d@

命名空间在哪里?它已被删除,请查看 more information about recipes.

Since I am a noob using Conan, I have no clue how I can fix this problem. What needs to be done to fix this issue, and also can I fix this on my own, or do I need help from the package author?

按照FAQ的建议,自己构建,运行错误信息提示的命令:

conan install openssl/1.1.1a@ --build zlib

但我敢肯定这还不够,您还需要构建 OpenSSL。因此,在您的情况下最好的方法是:

conan install openssl/1.1.1a@ --build missing

现在,柯南将从源构建任何未在服务器端预先构建的内容。

总而言之,这不是错误,就像什么东西坏了一样。

当您要求 OpenSSL 1.1.1a 时,Conan 在 Conan Center 上找到了说明如何构建 OpenSSL 的配方,但是它没有找到您的预构建包,按照您的设置和选项。

嗯,柯南中心索引中没有使用MingW,因为没有足够的需求,所有supported platforms and configurations列在Wiki中。但是这个特定的配方应该支持 MingW,因为当它是柯南社区的一部分时,MingW 出现在构建的包列表中。

我想说,你可以用 1.1.1d 代替,它比 1.1.1a 更新更安全。