背景
开始学习C和C++, 认为一切就那么回事, 编程就好.
后来学习 python 发现有些东西我们自己写, 浪费时间. 幸而有 pip 和 conda 等方法安装人家已经写好的包.
回过头再看 C++, 这种东西还是欠缺官方支持.
看了某算命的(Benny Huo)的视频, 介绍 conan. 开始认识这个工具. 并与今日能够做到将将会用的程度.
背景知识
- C / C++ 语言编程, 多文件程序设计相关知识
- CMake 构建工具的认识. CMakeLists.txt 能够自行编写.
- python 语言基础 (可选, 推荐)
背景环境
- C/C++ 开发环境
- Cmake 已经安装 (推荐版本 ≥ 3.23 \geq 3.23 ≥3.23)
- python 开发环境
- pip 能够正常使用
说明
conan 这个东西在项目级 C/C++ 程序设计中有很高效果. 但是在单文件的 c++ 的程序性价比很低. 你不大可能为了一个程序源代码文件建立一个项目.
当前(2024-04-11) conan 的使用方法和之前的 conan 使用方法有较大差异, 未来也可能会有较大差异. 如果发现此教程不能使用, 也有可能是版本更新导致.
安装 conan
pip 命令:
pip install conan
此后输入命令conan
得到类似下面的结果, 认为安装成功
使用 conan 安装包
项目文件准备
来到准备安装包的项目文件夹, 提前写好CMakeLists.txt .
新建文件, 推荐命名为 conanfile.py (如果不, 则需要指定文件名)
包查找和信息添加
在 conan-center 官网上, 找到你想安装的包(这里以 antlr4 的 c++ 运行时为例), 点击conanfile.py 选项, 复制其中的代码:
今后如果有新的包需要添加, 找到对应的包(以 fmt 为例) 找到对应的 conanfile.py 选项, 将新需要的 settings
, generators
补到当前的 conanfile.py 的后面. 然后在 requirements
方法中添加 self.requires(...)
信息:
from conan import ConanFile
from conan.tools.cmake import cmake_layout
class ExampleRecipe(ConanFile):
settings = "os", "compiler", "build_type", "arch" # 这里也相同
generators = "CMakeDeps", "CMakeToolchain" # 这里相同
def requirements(self):
self.requires("fmt/10.2.1") # 补了一个 fmt 的信息
self.requires("antlr4-cppruntime/4.13.1")
def layout(self): # 这里相同
cmake_layout(self)
保存文件
配置信息建立
首次使用需要建立配置信息:
conan profile detect --name DaochiDebug --force
首次建立, 建议不要加 --name
和后面的参数 DaochiDebug
根据生成的信息, 确定配置生成的目录, 可以到对应地址, 修改你的配置.
参数说明:
--name xxx
将会生成名为 xxx 的配置文件--force
如果不加此选项, 运行时发现有同名文件时, 会报错. 加此选项则覆盖掉同名配置文件.
安装包
运行命令(可以在网页上看到)
conan install [ConanFileName]\
--build=missing\
[--profile <profile Name>]
[--output-folder <folder Name>]
参数说明--build=missing
只构建未曾安装过的 conan 包.--profile <profile Name>
如果不写, 默认是采用 default 配置--output-folder <folderName>
很 ** 的设定, 生成的配置信息, 将会放到 folderName
下的 build 文件夹中. 所以我的配置是不写这个.
留意生成信息:
注意到蓝字下面第三行信息: “Preset conan-xxx added to CMakePresets.json. Invoke it manually using xxxxxx if cmake >= 3.23”
解释:
如果你的 cmake 版本 >= 3.23 则在当前目录下输入命令:
cmake --preset xxx # (xxx 取决于它生成的信息)
否则需要输入下面一长串的命令:
cmake <path> -G "Unix Makefiles" \
-DCMAKE_TOOLCHAIN_FILE=xxxx \
-DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Debug
之后可以继续编写代码然后转到生成目录运行make
命令生成目标.
每次更新配置, 都需要到根目录运行 cmake --preset xxx
或者是那一长串命令.文章来源:https://www.toymoban.com/news/detail-855670.html
结
这个东西的使用还算方便, 也不用我手动构建然后再关注包的地址等一堆麻烦事. 也是推荐各位使用.
不过版本更新差距也不小, 之前的 conan 的使用和现在的使用有很大不同, 需要关注.文章来源地址https://www.toymoban.com/news/detail-855670.html
到了这里,关于Conan C/C++ 开源包管理工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!