conan使用包以及管理(2)

conan使用包

安装依赖项

在使用conan install命令下载 Poco库并构建示例中。
如果您检查运行conan installconanbuildinfo.cmake时创建的文件,您可以看到那里声明了许多 CMake 变量。例如 ,它定义了 zlib 头文件的包含路径,并 定义了所有依赖项头文件的包含路径。CONAN_INCLUDE_DIRS_ZLIB CONAN_INCLUDE_DIRS
请添加图片描述
如果检查每个变量定义的完整路径,将看到它指向文件夹下的一个文件 夹。这些文件夹一起是本地缓存。这是包配置和二进制包存储和缓存的地方,因此不必再次检索它们。可以 使用conan search检查本地缓存,并使用conan remove命令从中删除包
在 shell 中执行conan install poco/1.9.4@命令,Conan 会将 Poco 包及其依赖项(openssl/1.0.2t和 zlib/1.2.11)下载到本地缓存并打印有关所在文件夹的信息,但是常用的方式是通过conanfile.txt,

所需的依赖项应在[requires]部分中指定。这是一个例子:
[requires]
mypackage/1.0.0@company/stable

generators

conan通过conanfile.txt并为每个构建创建文件,其中包含将您的程序与指定要求链接所需的所有信息。生成的文件通常是临时的,强调生成的文件与运行conan install时指定的给定配置(调试/发布、x86/x86_64 等)匹配非常重要。如果配置更改,文件将相应更改

Options

例如,conan install … -s build_type=Debug。这些设置通常是由客户端计算机定义的项目范围的配置,因此它们不能在Options中具有默认值。例如,对于包Options来说,将“Visual Studio”声明为默认编译器是没有意义的,因为这是最终用户定义的东西,如果他们在 Linux 中工作,则不太可能有意义。
可以通过使用conan get 命令检查配方来查看包的可用选项:

$ conan get poco/1.9.4@

要仅查看配方的特定字段,您可以使用conan inspect命令:

$ conan inspect poco/1.9.4@ -a=options
$ conan inspect poco/1.9.4@ -a=default_options

例如,我们可以通过编辑 [options]部分来修改前面的示例以使用动态链接而不是默认的静态链接conanfile.txt:

[requires]
poco/1.9.4

[generators]
cmake

[options]
poco:shared=True # PACKAGE:OPTION=VALUE
openssl:shared=True

我们可以检查生成的可执行文件,并查看它是否正在使用共享库。例如,在 Linux 中,我们可以使用objdump工具并查看动态部分:

$ cd bin
$ objdump -p md5
...
Dynamic Section:
 NEEDED               libPocoUtil.so.31
 NEEDED               libPocoXML.so.31
 NEEDED               libPocoJSON.so.31
 NEEDED               libPocoMongoDB.so.31
 NEEDED               libPocoNet.so.31
 NEEDED               libPocoCrypto.so.31
 NEEDED               libPocoData.so.31
 NEEDED               libPocoDataSQLite.so.31
 NEEDED               libPocoZip.so.31
 NEEDED               libPocoFoundation.so.31
 NEEDED               libpthread.so.0
 NEEDED               libdl.so.2
 NEEDED               librt.so.1
 NEEDED               libssl.so.1.0.0
 NEEDED               libcrypto.so.1.0.0
 NEEDED               libstdc++.so.6
 NEEDED               libm.so.6
 NEEDED               libgcc_s.so.1
 NEEDED               libc.so.6

可以将库的文件夹添加到路径(Linux 中的 LD_LIBRARY_PATH 环境变量、OSX 中的 DYLD_LIBRARY_PATH 或 Windows 中的系统 PATH),防止库连接不到引起错误
在 Windows 和 OSX 中,最简单的方法是将共享库复制到可执行文件夹中,以便可执行文件找到它们,而无需修改路径。

可以浏览本地缓存 (~/.conan/data) 中的包文件夹并查看共享库的位置。*.dll被复制到/bin是很常见的。其余的库应该在/lib文件夹中,

安装要求(从build文件夹中),然后再次运行二进制文件:

$ conan install ..
$ ./bin/md5
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值