编程语言
首页 > 编程语言> > conan-c++包管理工具安装及使用指南

conan-c++包管理工具安装及使用指南

作者:互联网

本篇文章的代码都在这里备份

文章目录

一、conan介绍

  1. 跨平台
  2. c、c++包管理工具
  3. python写的
  4. 开源
  5. 类似java的maven,python的pip

1.1 简单介绍


1.2 conna特点


1.3 跨平台

Conan可在Windows,Linux(Ubuntu,Debian,RedHat,ArchLinux,Raspbian),OSX,FreeBSD和SunOS上运行,并且由于具有可移植性,因此它可在可运行Python的任何其他平台上运行。它可以针对任何现有平台,从裸机到桌面,移动,嵌入式,服务器,跨架构。

Conan也可以与任何构建系统一起使用。与最流行的集成有内置的集成,例如CMake,Visual Studio(MSBuild),自动工具和Makefile,SCons等。但不需要使用任何集成。甚至没有必要所有软件包都使用相同的构建系统,每个软件包都可以使用自己的构建系统,并依赖于使用不同构建系统的其他软件包。还可以与任何构建系统(包括专有系统)集成。

同样,柯南可以管理任何编译器和任何版本。有一些最流行的默认定义:gcc,cl.exe,clang,apple-clang,intel,具有不同的版本配置,运行时,C ++标准库等。该模型还可以扩展到任何自定义配置。

二、conan全平台安装

无论是在什么平台,因为conan是python开发的。都可以使用python的包管理工具pip下载

pip install conan

安装后:

conan --version

就可以看到安装的版本。

更新conan:

 pip install conan --upgrade  

三、使用conan教程

本篇文章的代码都在这里备份

让我们从一个示例开始:我们将创建一个MD5哈希计算器应用程序,该应用程序使用最流行的C ++库之一:Poco。

在这种情况下,我们将使用CMake作为构建系统,但请记住,柯南可与任何构建系统一起使用,而不仅限于使用CMake。

 #include "Poco/MD5Engine.h"
 #include "Poco/DigestStream.h"

 #include <iostream>

 int main(int argc, char** argv){
     Poco::MD5Engine md5;
     Poco::DigestOutputStream ds(md5);
     ds << "abcdefghijklmnopqrstuvwxyz";
     ds.close();
     std::cout << Poco::DigestEngine::digestToHex(md5.digest()) << std::endl;
     return 0;
 }
 conan search poco --remote=conan-center

我们可以看到搜索结果截图:

在这里插入图片描述

我们可以看到有很多版本的poco库版本

我对版本1.9.4比较感兴趣,所以我准备查看一下关于这个版本的信息。我输入以下指令,得到反馈。

接下来:我们将安装所需的依赖项并生成构建系统的信息

首先我们创建一个文件夹,里面放上我们刚刚写的依赖于库文件的.cpp文件,命名为;md5.cpp,然后在创建一个名为build的文件夹,一会用来构建工程。现在我们的目录结构是这样的:
在这里插入图片描述

在正式开始下载库文件并编译的前,我们先告诉conan使用c++11的标准来编译我们需要的库文件。
执行下面指令:

conan profile update settings.compiler.libcxx=libstdc++11 default

现在开始使用conan编译我们的库文件,首先进入build文件夹然后执行指令:

conan install .. 

如果你是初次安装就会看到下面这张截图:
在这里插入图片描述

最后安装结束。

Conan安装了我们的Poco依赖关系,还安装了传递依赖关系:OpenSSL,zlib,sqlite等。它还为我们的构建系统生成了conanbuildinfo.cmake文件。

在这里插入图片描述
现在库文件已经安装好了,我们来写一个cmake执行我们的.cpp文件,脚本如下:

- CMakeLists.txt


 cmake_minimum_required(VERSION 2.8.12)
 project(MD5Encrypter)

 add_definitions("-std=c++11")

 include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
 conan_basic_setup()

 add_executable(md5 md5.cpp)
 target_link_libraries(md5 ${CONAN_LIBS})

现在我们的目录结构是:
在这里插入图片描述

(CMakeLists.txt 图中文件名写错了!!!!)

现在我们可以进入build文件夹开始执行了

(win)
$ cmake .. -G "Visual Studio 16"
$ cmake --build . --config Release
(linux, mac)
$ cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
$ cmake --build .
...
[100%] Built target md5
$ ./bin/md5
c3fcd3d76192e4007dfb496cca67e13b

这里我是用的linux,可以看到我的执行结果如下:
在这里插入图片描述
在这里插入图片描述

我们看一眼最终的生成文件夹:
在这里插入图片描述

我们需要的东西就在bin文件夹里面,进去执行一下:


root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build# cd bin
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ls
md5
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ./md5
c3fcd3d76192e4007dfb496cca67e13b
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ./md5
c3fcd3d76192e4007dfb496cca67e13b
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ./md5
c3fcd3d76192e4007dfb496cca67e13b
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ./md5
c3fcd3d76192e4007dfb496cca67e13b
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ./md5
c3fcd3d76192e4007dfb496cca67e13b
root@iZ2ze99clzuka1844h9qy0Z:~/conanTest/build/bin# ./md5
c3fcd3d76192e4007dfb496cca67e13b

可以看到已经执行成功啦。

四、快速总结conan

  1. conna是个 c++/c 的包管理工具,基于python开发,开源。
  2. conan需要编写conanfile.txt来说明依赖。
  3. conan search -r=conan指令可以在远程仓库搜索包
  4. conan install 指令来根据conanfile.txt安装库文件
  5. 最终生成文件:conanbuildinfo.txt
  6. 编写cmake后编译工程
  7. 完成使用
# 安装
pip install conan

# 版本
conan --version

# 升级
pip install conan --upgrade  
 
# 搜索包
conan search poco --remote=conan-center
conan search libpng -r=conan-center
  
# 查看  
conan inspect poco/1.9.4
  
# 配置文件名  
conanfile.txt
  
# 设置默认编译版本 
conan profile update settings.compiler.libcxx=libstdc++11 default

# 安装库
conan install .. 


# cmake使用例子
cmake_minimum_required(VERSION 2.8.12)
project(MD5Encrypter)

add_definitions("-std=c++11")

include(${CMAKE_BINARY_DIR}/conanbuildinfo.cmake)
conan_basic_setup()

add_executable(md5 md5.cpp)
target_link_libraries(md5 ${CONAN_LIBS})
 
 
 
# linux构建命令
$ cmake .. -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
$ cmake --build .

标签:cmake,--,c++,conan,build,Conan,使用指南,md5
来源: https://blog.csdn.net/sexyluna/article/details/115428572