在CLion下使用Conan包管理工具构建C++ CMake工程

前言

在开发跨平台工程时为了减少库的依赖关系增加的使用成本,让开发者有更多的时间关注C/C++功能的开发,所以需要一个跨平台的方案来构建CMake工程。

本文环境
  • 64位 Windows11
  • CLion 2024.1.1
  • Visual Studio 17 2022
  • Conan 2.3.0

一、开发环境的安装

1、使用Python3执行命令

pip install conan==2.3.0(你也可不加版本号安装最新版本)

来安装本文教程的对应版本Conan。

2、安装CLion中的Conan插件

从CLion的插件市场搜索“Conan”安装Conan插件。
 

二、构建CMake工程调试

在当前教程以cJson库的应用为例子。

1、创建CMake工程

新建个文件夹MyProject

在文件夹下新建 main.cpp 源码文件

#include "cjson/cJSON.h"
#include <cstdlib>
#include <cstdio>


int main() {
    char versionBuf[32];
    snprintf(versionBuf, sizeof(versionBuf), "%d.%d.%d", CJSON_VERSION_MAJOR, CJSON_VERSION_MINOR, CJSON_VERSION_PATCH);
    cJSON *versionJson = cJSON_CreateString(versionBuf);
    cJSON *rootJson = cJSON_CreateObject();
    cJSON_AddItemToObject(rootJson, "version", versionJson);
    char *jsonStr = cJSON_Print(rootJson);
    printf("%s\n", jsonStr);
    free(jsonStr);
    cJSON_Delete(rootJson);
    return 0;
}

再创建CMakeLists.txt并在其引入main.cpp使用到的cJson库

cmake_minimum_required(VERSION 3.27)
project(cjson_demo_conan)

set(CMAKE_CXX_STANDARD 17)

find_package(cJSON REQUIRED)

add_executable(${PROJECT_NAME} main.cpp)

target_link_libraries(${PROJECT_NAME} cjson::cjson)
2、使用CLion打开MyProject工程文件夹

如图所示

点击确定后当前工程是无法构建成功的。

然后在左下角找到Conan插件图标打开,或者通过通过View->Tool Windows->Conan 来打开,

把刚刚安装的conan.exe路径配置一下(如:D:\Program Files\python3\Scripts\conan.exe或者勾选"Use Conan installed in the system")

 搜索框输入cj

 点击 Use in project后会生成conandata.yml和conanfile.py以及conan_provider.cmake文件。

然后在CMake插件图标下点击 重新加载 CMake后会同步配置成功。

 在工程配置文件中可以看到,它自动添加了-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="conan_provider.cmake"到CMake选项中。

当前默认是Debug,你可新建Release配置,并且把上述conan_provider.cmake添加到CMake选项中即可。

到这里你就可以像以前一样编译调试代码了。

三、Conan的常用操作

新建conanfile.txt文件

[requires]
cjson/1.7.18

[generators]
CMakeDeps
CMakeToolchain

查询包

conan search cjson

下载和编译依赖库 

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

 列出配方包

conan list cjson

删除本地所有包

conan remove *

列出本地profile

conan profile list

四、用源码创建自己的Conan包

这里依然拿cjson的源码来做创建包。

git clone https://github.com/DaveGamble/cJSON.git

创建myjson(Conan packages必须是全部小写字母)目录并进入,在当前目录打开终端:

conan new cmake_lib -d name=myjson -d version=1.0

将会自动生成一个最简单的CMake工程,然后执行下面命令生成包

conan create .

参考文章:

如何使用 CLion 解决 7 大主要 C++ 痛点 | The CLion Blog (jetbrains.com)

Create your first Conan package — conan 2.3.1 documentation

创建软件包 — conan 2.3.1 文档

Conan 备忘清单 & conan cheatsheet & Refs CLI (soybean.cool)

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值