Conan 的配置与使用
本文面向已经“听说过 Conan”的同学,帮你把“能跑起来”到“能上线”的每一步都踩实。官方文档很香,但太长;这篇博客很干,但够短。
官网指路
Conan 官网:https://conan.io/
可用包速查:https://conan.io/center
官方完整文档(建议完整阅读一遍):https://docs.conan.io/2/index.html
1. 30 秒完成环境初始化
1 | # 1. 装 Conan(Python3 自备) |
2. 先把项目摆成“Conan 喜欢的样子”
以 CMake 工程为例,推荐目录:
1 | conan-fmt-demo/ |
最小可用 conanfile.txt
1 | [requires] |
说明
fmt/10.1.1
:告诉 Conan“我要这个版本”。CMakeDeps + CMakeToolchain
:自动生成fmt-config.cmake
和 toolchain 文件,CMake 一句find_package(fmt)
就能用。
想知道还有哪些版本?两条路:
1 | conan search fmt # 本地+远端一起搜 |
3. 一条命令安装全部依赖
1 | conan install . --build=missing -s build_type=Release |
--build=missing
:远端没有现成二进制就本地现编。- 成功后会在
build/Release/generators/
里吐出conan_toolchain.cmake
。
4. 编译项目:两种姿势,任选
姿势 A:经典手写
1 | cmake -G "Unix Makefiles" \ |
姿势 B:CMake ≥3.19 的 preset(真香)
1 | cmake --preset conan-default |
老版本 CMake 想用 preset?官方教你曲线救国:https://docs.conan.io/2/tutorial/consuming_packages/use_tools_as_conan_packages.html
5. 踩坑现场:缺失系统库怎么办?
典型报错:
1 | ERROR: vaapi/system … No package 'libva' found |
原因:vaapi/system
这类 system
包不会帮你编 libva,它假设系统里已经装好。
解决(Ubuntu/Debian 演示):
1 | # 1. 装 apt-file 并更新索引 |
如果缺失的不止一个,可以偷懒用脚本:
1 |
|
脚本会自动扫描 xorg/system
、vaapi/system
、vdpau/system
等常见 system 包,缺啥补啥,直到全部绿灯。
6. 私有仓库:又快又稳
6.1 添加仓库
1 | conan remote add myrepo https://your-private-repo.com --index=0 |
--index=0
把私有仓库置顶,优先级最高。
登录(仅上传时需要):
1 | conan remote login myrepo <user> -p <pass> |
6.2 查看 / 调整顺序
1 | conan remote list |
7. 把包推上去
场景 A:官方包直接迁到私有
1 | conan install --requires=ffmpeg/5.0@ --build=missing |
场景 B:自研项目
1 | conan create . --user=mychannel |
8. 命令小抄(建议收藏)
目的 | 命令 |
---|---|
查看本地缓存 | conan list '*' |
删除本地包 | conan remove <ref> |
搜索远端包 | conan search <pkg> -r myrepo |
查看 profile 路径 | conan profile path default |
编辑 profile | conan profile edit default |
9. 结语
- 装好 Conan →
profile detect
→conan install
,项目就跑起来了。 - 缺系统库 →
apt-file
搜-dev
包,或者一键脚本。 - 私有仓库 →
remote add --index=0
置顶,上传一条命令搞定。
祝你编译愉快,一路无坑!
Comments
Comment plugin failed to load
Loading comment plugin