Cpp包管理工具Conan2


概述

首先,先把官网官方文档放在这里。

这个工具能让cpp开发者免去每个项目依赖都去make install或者都要源码编译的痛苦,相信就这一点经常写cpp的同志们就知道有切中痛点了,能够像pip一样帮你快速构建。

安装

建议cpp跟python一样内置一个包管理工具,2024年了在这种切实痛点的地方modern一点。

conan的安装非常简单,只需要

pip install conan

使用

官方教程中,把对应项目clone下来,按照对应的地方修改即可,注意,和之前vscode配置的不同,在使用conan初始化项目后编译链就确定了(或者你需要自己手写一套settings),默认的编译链则是输入:

conan profile detect --force

对于clang编译链则是如下:

[settings]
arch=x86_64
build_type=Release
compiler=clang
compiler.cppstd=23
compiler.version=17
os=Windows

msvc编译链如下:

[settings]
arch=x86_64
build_type=Release
compiler=msvc
compiler.cppstd=14
compiler.runtime=dynamic
compiler.version=193
os=Windows

gcc编译链如下:

[settings]
arch=x86_64
build_type=Release
compiler=gcc
compiler.cppstd=23
compiler.libcxx=libstdc++
compiler.version=13
os=Windows

安装包依赖

对应的在conanfile.txt中写入需要的,对于官方的例子则是给好了:

[requires]
zlib/1.2.11

[generators]
CMakeDeps
CMakeToolchain

写好依赖后只需要

conan install . --output-folder=build --build=missing

就帮你配置好依赖性了,非常方便。

CMake对接

使用后会帮你生成CMakeUserPresets.json,这时候需要重新点工具链:

选择conan为你生成的toolchain即可,别的都一样

CMake

CMakeLists.txt 文件,找到之前安装包的时候产生的命令行输出,添加 find_package(你的包 REQUIRED) 一行。并在 add_executable 的后面添加 target_link_libraries(${PROJECT_NAME} 你的包::需要的模块)

好了,可以正常爽用了,不用再费劲写third-party的cmakelist和编译了!


评论
  目录