Conan 中的“包”概念
程序员文章站
2022-07-14 08:27:09
...
Conan 作为 C++ 包管理软件,最重要的功能就是“包”,因此我们需要仔细看看其包管理的基本概念。
定义:“包” 与 “二进制包”
Conan 最主要的功能就是可以管理好预编译好的二进制文件用于后续打包。关于“包”这里有两层定义:“包”(package recipe)、 “二进制包”(binary package)。
区别 | “包”(package recipe) | “二进制包”(binary package) |
---|---|---|
概念 | 逻辑定义 | 实际使用 |
从属关系 | 1:N | 1:N |
定义 | 包名/版本@用户/渠道 | settings & options |
过程:如何从“包” 变成 “二进制包”
setting 和 option 的区别:setting 是 Conan 给出标准配置项,option 是包的自定义配置项。
方法:3 种打包方式
- package_info():1 config (1 build) -> 1 package
- package_info():N configs -> 1 package
- build_id():N configs (1 build) -> N packages
技巧:基于“配置文件”进行打包
我们知道在 Conan 中,可以通过设置不同的 setting 和 option 生成不同的“二进制包”(binary package)。通过“配置文件”(profiles)就可以方便的进行管理。
一个配置文件的定义:
[settings]
#setting=value
os_build=Linux
arch_build=x86_64
os=Macos
arch=x86_64
compiler=clang
compiler.version=3.5
compiler.libcxx=libstdc++11
build_type=Release
[options]
#MyLib:shared=True
*:shared=True
[env]
#env_var=value
CC=/usr/bin/clang
CXX=/usr/bin/clang++
[build_requires]
#tool/aaa@qq.com/channel
Tool2/aaa@qq.com/channel, Tool3/aaa@qq.com/channel
*: Tool4/aaa@qq.com/channel
推荐阅读
-
sql server代理中作业执行SSIS包失败的解决办法
-
Python中的模块和包概念介绍
-
在Python中利用Into包整洁地进行数据迁移的教程
-
python中的生成器、迭代器、闭包、装饰器
-
java的面向对象特征(java中对象的概念)
-
Python 中包/模块的 `import` 操作代码
-
详解Python中的装饰器、闭包和functools的教程
-
Python中Numpy包的安装与使用方法简明教程
-
eclipse springboot工程打war包方法及再Tomcat中运行的方法
-
Windows 64 位 mysql 5.7以上版本包解压中没有data目录和my-default.ini及服务无法启动的快速解决办法(问题小结)