C/C++包管理工具Conan简介

Posted fengbingchun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C/C++包管理工具Conan简介相关的知识,希望对你有一定的参考价值。

    Conan是一个开源的、跨平台的、去中心化的C和C++包管理器,它的源码在https://github.com/conan-io/conan ,License为MIT,最新发布版本为1.38.0,由Python实现。版本更新较频繁,但保持向前兼容。

    Conan特点

    (1).它是完全去中心化的:用户可以将他们的包托管在他们的私有服务器上,与JFrog Artifactory 和ConanCenter集成。具有客户端----服务器架构,客户端可以从不同的服务器(“远程”)获取包,也可以将包上传到不同的服务器,similar to the “git” push-pull model to/from git remotes.

    (2).它适用于所有平台:包括Linux、OSX、Windows、androidios,也支持嵌入式,还支持交叉编译。

    (3).管理二进制文件:它可以为任何配置和平台甚至包括交叉编译创建、上传和下载二进制文件,从而节省大量开发和持续集成时间。二进制兼容性也可以配置和定制。在所有平台上以相同的方式管理所有工件。

    (4).与任何构建系统集成,包括任何专有和定制系统:为主要构建系统(CMake、Visual Studio MSBuild、Makefiles、Meson等)提供经过测试的支持。

    (5).可扩展。

    ConanCenter:是一个中央公共存储库,包含数百个流行的开源库包,以及许多针对主流编译器版本的预编译二进制文件。

    JFrog Artifactory Community Edition (CE):是推荐的、免费的、Conan服务器,可在你的控制下私下托管你自己的包。它是JFrog Artifactory for Conan包的免费社区版。

    Conan client:命令行工具,用于创建包和使用包,可创建本地仓库支持离线使用。

    Conan server:可私有化部署的服务器,是一个与Conan客户端一起分布的小型服务器。 它是一个简单的开源实现,提供基本功能。

  安装Conan:这里通过Conda安装Conan,关于Conda的介绍可以参考:https://blog.csdn.net/fengbingchun/article/details/86212252 ,python的版本需要3.8

conda create -n test_conan python=3.8
conda activate test_conan
pip install conan #conda install -c conda-forge conan

    在Conan中,一个包的定义:包名/版本@用户/渠道

    Conan客户端常用命令

    (1).查看conan版本:conan --version

    (2).搜索软件包,如opencv:conan search opencv* -r=all (或-r=conan-center)

    (3).显示所有源:conan remote list

    (4).通过conanfile.txt安装依赖包:conan install .

    下面是下载openssl 1.0.2s依赖包示例,conanfile.txt内容如下:

[requires]
openssl/1.0.2s

[generators]
cmake

    在conanfile.txt目录下执行以下命令:

~/Disk/anaconda3/envs/test_conan/bin/conan install . -s arch=x86_64 -s compiler=gcc -s compiler.libcxx=libstdc++ -s compiler.version=4.9 -s os=Linux --build=openssl --build=zlib

    执行结果如下图所示,会在~/.conan/data/openssl/1.0.2s目录下生成对应的头文件和库:

    执行上述命令前,在当前目录下仅有conanfile.txt一个文件,执行完后会多出几个文件,如下图所示:

以上是关于C/C++包管理工具Conan简介的主要内容,如果未能解决你的问题,请参考以下文章

C/C++ 如何进行持续交付 ?使用 Jenkins+Conan!

c++包管理工具conan使用

今晚8点C/C++也可以做开源组件漏洞扫描了!——Conan的最新发展

conan入门(二十六):使用make编译erpc/erpcgen(makefile)

conan入门(二十六):使用make编译erpc/erpcgen(makefile)

conan入门:将自己的项目生成conan包