packge-management 04-conan
笔者暂时不打算学习使用 conan 了,目前第三方库都使用 vcpkg 进行管理,之后再回来完成这部分内容。
----------------------------------------------------- 未完成 -----------------------------------------------------
因为做 CS106L 用到了 CPP 的包管理工具 vcpkg ,就对包管理工具比较好奇。所以就先来学习一下和 vcpkg 类似的 conan 。
# 介绍
conan 是一个开源的、去中心化 (什么是去中心化? (opens new window)) 的多平台包管理工具。它支持多种构建系统,比如 CMake, Visual Studio, Makefile...
书上使用的是 Conan1.X 版本,但是现在已经过时了。下面使用 Conan2.0 (官方手册 (opens new window)) 进行介绍。
# 安装 conan
$ sudo apt-get install python3 python3-pip
$ pip3 install conan
2
# Conan 配置
在 Conan 中配置文件 (profiles) 用来控制编译器,环境信息使用动态库还是静态库等信息。
通过检测当前操作系统,构建工具和编译器设置创建一个默认的配置。
conan profile detect --force
会输出一下信息:
Found gcc 9
Found clang 10.0
gcc>=5, using the major as version
gcc C++ standard library: libstdc++11
Detected profile:
[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=gnu14
compiler.libcxx=libstdc++11
compiler.version=9
os=Linux
WARN: This profile is a guess of your environment, please check it.
WARN: The output of this command is not guaranteed to be stable and can change in future Conan versions.
WARN: Use your own profile files for stability.
Saving detected profile to /home/tartarus/.conan2/profiles/default
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
配置文件被保存到了: /home/tartarus/.conan2/profiles/default 中
构建类型会被默认配置为 Realse
conan 将会设置 C++ 标准为检测到的默认标准,如果你想更改 C++ 标准,直接进入文件配置文件更改即可。
# 寻找包
默认的,推荐的寻找包的方式是使用 conan-center (opens new window) 直接进行查找。
当然也可以使用 conan search 进行查找:
conan search fmt
(有时候会查找失败,这个得看网络状况)
# 检查包
可以使用 conan inspect 命令检查包