相见恨晚 conan 开箱即用的c++包管理工具

之前用过 vcpkg,群友提起 conan,就去试了一下。结果用出了 cargo 的感觉,于是写一篇文章记录一下。

安装

安装很简单,conan 是 python 写的,现在大家基本都有 python 环境,直接 pip 安装

pip install conan

项目创建

给出一个 uws 项目

main.cpp

#include "App.h"

int main() {
    uWS::App()
        .get("/*", [](auto *res, auto *req) {
            res->end("Hello world!");
        })
        .listen(3000, [](auto *listen_socket) {
            if (listen_socket) {
                std::cout << "Listening on port " << 3000 << std::endl;
            }
        })
        .run();
    std::cout << "Failed to listen on port 3000" << std::endl;
}

conanfile.txt

[requires]
uwebsockets/20.9.0

[generators]
cmake

[options]

CMakeLists.txt

cmake_minimum_required(VERSION 3.0.0)

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

set(CMAKE_CXX_STANDARD 17)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})

三个文件创建完成之后,创建一个 build 目录,cd 进去,然后安装依赖

mkdir build
cd build
conan install ..

然后他就自动安装好了,通常情况下他会直接下载预编译的文件(隔壁vcpkg会从源码编译)

在这里插入图片描述
然后就可以使用 cmake 编译项目了,我用的是 vscode,直接使用
在这里插入图片描述
选择64位VS,编译!
在这里插入图片描述
然后就看到一堆错误
在这里插入图片描述
因为他默认安装的是 release 模式的库,使用 release 模式重新配置,再次编译(vscode 直接点击左下角 Cmake [Debug] 按钮,然后选择 Release)
在这里插入图片描述
编译成功,那么怎么安装 Debug 模式的库呢

conan install .. -s build_type=Debug

更改编译选项

众所周知,从源码编译的优点之一是可以自由选择、配置所需特性,conan 也可以。打开 build/conaninfo.txt,翻到下面 full_options,这些就是可以修改的选项了,复制需要修改的内容放到 conanfile.txt 里面即可,然后再次执行前面的安装命令。如果有编译好的他会直接下载,没有就自动从源码编译。
在这里插入图片描述

添加依赖

去 conan 官网:https://conan.io/center/

搜索需要的库,点击复制按钮
在这里插入图片描述
粘贴到 conanfile.txt 里面(有 cargo 内味了),然后执行安装命令就可以了
在这里插入图片描述

编译失败时手动修改

下载的源码在 用户\.conan\data\包名\版本\_\_\source目录里,修改后重新执行从源码安装命令即可。

注意有 patch 文件的不要影响到 patch 附近的代码。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值