概述
这个工具能让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和编译了!