Conan在Linux的使用教程(二)

使用包

使用 Conan 安装Zlib并生成 CMake 查找此库和构建项目所需的文件。运行

conan install . --output-folder=build --build=missing

输出结果

...
======== Computing dependency graph ========
zlib/1.2.11: Not found in local cache, looking in remotes...
zlib/1.2.11: Checking remote: conancenter
zlib/1.2.11: Downloaded recipe revision fca992a7d96a1b92bd956caa8a97d18f
Graph root
    conanfile.txt: /home/jasper/work/examples2/tutorial/consuming_packages/simple_cmake_project/conanfile.txt
Requirements
    zlib/1.2.11#fca992a7d96a1b92bd956caa8a97d18f - Downloaded (conancenter)

======== Computing necessary packages ========
Requirements
    zlib/1.2.11#fca992a7d96a1b92bd956caa8a97d18f:897e6fde718e72637d92b0b8ed929893a1976238 - Build

======== Installing packages ========
zlib/1.2.11: Sources downloaded from 'conancenter'
zlib/1.2.11: Calling source() in /home/jasper/.conan2/p/zlibdb1c5346ffee7/s/src

-------- Installing package zlib/1.2.11 (1 of 1) --------
...

注意事项:

  • Conan 从远程服务器安装了Zlib库,如果该库可用,则默认为 Conan Center 服务器。
  • 服务器存储 Conan recipes(即定义如何构建库的文件)和可重复使用的二进制文件,不必每次都从源代码构建。
  • Conan 在build文件夹下生成了几个文件。conanfile.txtCMakeToolchain中设置的和CMakeDeps生成器生成的。生成文件,以便 CMake 找到我们刚刚下载的 Zlib 库。另一方面,为 CMake 生成一个工具链文件,以便我们可以使用我们为默认配置文件检测到的相同设置透明地使用 CMake 构建我们的项目。
$ cd build
$ cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
$ cmake --build .
...
[100%] Built target compressor
$ ./compressor
Uncompressed size is: 233
Compressed size is: 147
ZLIB VERSION: 1.2.11

使用构建工具作为 Conan 包

Conan 还可以帮助您安装这些工具并使用它们来编译消费者项目或其他 Conan 软件包。

在前面的例子里 ,修改Conanfile.txt , 声明要使用 CMake v3.22.6构建我们的应用程序。

[requires]
zlib/1.2.11

[tool_requires]
cmake/3.22.6

[generators]
CMakeDeps
CMakeToolchain

注意事项:

  • conanfile.txt将分别安装zlib/1.2.11cmake/3.22.6
  • 如果 Conan 在 Conan Center 中找不到 Zlib 的二进制文件,并且需要从源代码构建,则系统中必须已经存在 CMake 安装,因为cmake/3.22.6您的声明conanfile.txt仅适用于您当前的项目,而不是所有依赖项。

在CMakeLists.txt添加输出信息,显示使用的CMake版本.

cmake_minimum_required(VERSION 3.15)
project(compressor C)

find_package(ZLIB REQUIRED)

message("Building with CMake version: ${CMAKE_VERSION}")

add_executable(${PROJECT_NAME} src/main.c)
target_link_libraries(${PROJECT_NAME} ZLIB::ZLIB)

运行

conan install . --output-folder=build --build=missing
cd build
source conanbuild.sh // 文件设置了一些环境变量
cmake --version  // 运行cmake并检查版本
cmake .. -DCMAKE_TOOLCHAIN_FILE=conan_toolchain.cmake -DCMAKE_BUILD_TYPE=Release
cmake --build .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值