0


Conan C/C++ 开源包管理工具

文章目录

背景

开始学习C和C++, 认为一切就那么回事, 编程就好.
后来学习 python 发现有些东西我们自己写, 浪费时间. 幸而有 pip 和 conda 等方法安装人家已经写好的包.
回过头再看 C++, 这种东西还是欠缺官方支持.
看了某算命的(Benny Huo)的视频, 介绍 conan. 开始认识这个工具. 并与今日能够做到将将会用的程度.

背景知识

  1. C / C++ 语言编程, 多文件程序设计相关知识
  2. CMake 构建工具的认识. CMakeLists.txt 能够自行编写.
  3. python 语言基础 (可选, 推荐)

背景环境

  1. C/C++ 开发环境
  2. Cmake 已经安装 (推荐版本 ≥ 3.23 \geq 3.23 ≥3.23)
  3. python 开发环境
  4. 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

classExampleRecipe(ConanFile):
    settings ="os","compiler","build_type","arch"# 这里也相同
    generators ="CMakeDeps","CMakeToolchain"# 这里相同defrequirements(self):
        self.requires("fmt/10.2.1")# 补了一个 fmt 的信息
        self.requires("antlr4-cppruntime/4.13.1")deflayout(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

或者是那一长串命令.

这个东西的使用还算方便, 也不用我手动构建然后再关注包的地址等一堆麻烦事. 也是推荐各位使用.
不过版本更新差距也不小, 之前的 conan 的使用和现在的使用有很大不同, 需要关注.

标签: c语言 c++ java

本文转载自: https://blog.csdn.net/music_boyi/article/details/137647135
版权归原作者 捯饬点啥 所有, 如有侵权,请联系我们删除。

“Conan C/C++ 开源包管理工具”的评论:

还没有评论