tl;dr
Conan 是C++的一个包管理工具,使得C++安装第三方库变的很方便。 类似于vs的NuGet
Conan的基本命令:
查找库:
conan search poco --remote=conan-center
安装库:
conan inspect poco/1.9.4
安装到项目:
conan install ..
conanfile.txt样例:
1
2
3
4
5[requires]
poco/1.9.4
[generators]
cmakeCMakeLists.txt 插入内容:
1
2include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()
安装
conan 依赖python,因此需要安装python, 最好是安装python3
然后使用命令安装即可
pip install conan
如果找不到pip命令, 一种原因是没有安装python,另一种是没将pip路径添加到path
自己还遇到了一种情况就是,在windows下,使用pip安装了之后,能找到这个程序,却找不多conan命令,就是找不到conan.exe可执行程序
这种情况一般是没将pip安装后的可执行程序的目录添加到path里, 用everything搜一下conan.exe在哪,把路径添加进去就好了。
配置
Conan 会在第一次启动时自动配置好默认的 Profile 和 Remote 设置。它的配置以及本地的二进制仓库均存储在用户目录下~/.conan/
中(Windows上,是%USERPROFILE%\.conan\
)。
其中用户配置文件为conan.conf
,通常情况下无需修改,但当需要设置代理时,可以对其进行编辑。
1 | [proxies] |
包管理
官方文档中给出了一个项目demo, 顺便借助这个demo记录一下基本的使用。
查找本地库
conan search
可以查看本地已经缓存过的库有哪些
1 | Existing package recipes: |
以上是执行后的结果,安装有五个库, /
后面表示版本号
查找远程库
如果只是使用search则是在本地查找,如果版本可以接受可以直接用,避免总是从网上缓存过多的版本。
conan search poco --remote=conan-center
通过 --remote
参数指定源, conan-center
则是conan的官方库,里面有大部分库的封装。 如果使用个人的或其他的源,指定地址即可。
1 | conan search poco --remote=conan-center |
显示有多个版本,可以选择一个安装。
安装远程的库
conan inspect poco/1.9.4
通过此命令安装1.9.4版本的poco库, 等待执行结束即可。
这个时候如果再从本地查找就能找到这个库了。
删除库
conan remove poco/1.9.4
会给予确认提示,确认后就可以删除了。
项目编译
项目配置
官方给出的demo代码
Demo.cpp
1 |
|
也可以从github上直接拉取
git clone https://github.com/conan-io/examples.git && cd examples/libraries/poco/md5
然后我们需要在项目路径添加一个conanfile.txt
文件, 文件内主要记录conan的配置,依赖的库,版本,以及生成工具等等。
conanfile.txt
1 | [requires] |
构建工具使用cmake
指定编译器版本信息
1 | $ conan profile update settings.compiler.libcxx=libstdc++11 default # Sets libcxx to C++11 ABI |
指定使用C++11编译
安装库
例如我们需要构建到build目录
1 | mkdir build && cd build |
当我们使用 install
之后,就会生成一个conanbuildinfo.cmake
文件,文件里面主要是将库依赖,我们需要将这个文件写到我们项目的CMakeLists.txt
里面
CMakeLists.txt
1 | cmake_minimum_required(VERSION 2.8.12) |
此时项目就配置好了。
编译运行
1 | (win) |
关于头文件
如果使用了ide或者ls, 在项目中直接使用 “” 包含头文件即可。
上传自己的包
TODO: 目前还没用到,需要的时候再补充 需要的可以阅读下方参考连接里面的官方文档。
搭建私有服务器
TODO: 目前还没用到,需要的时候再补充