文章
问答
冒泡
conan2 在widows下的使用
1、前言
Conan 是一个开源的 C/C++ 包管理器。C++还有其他的包管理器,如vcpkg等,但是比较下来大家都比较推荐conan多一点。
 
2.conan2安装
conan是Python开发的,所以可以通过pip来安装
pip install conan
但是为了方便找到conan的路径,个人还是选择通过安装程序安装。安装完成之后通过 conan --version 检查是否安装成功。
输出
Conan version 2.3.1
执行创建默认配置的命令
conan profile detect
否则会出现如下信息。
ERROR: The default build profile 'C:\Users\fengxiaotx.conan2\profiles\default' doesn't exist.
You need to create a default profile (type 'conan profile detect' command)
or specify your own profile with '--profile:build=<myprofile>'
到这里conan2就安装完成了。
 
3.通过conan命令创建一个conan2的项目
创建文件夹conanexe
mkdir conanexe && cd conanexe
执行创建命令
conan new -d name=foo -d version=1.0 cmake_exe
初始化项目之后,查看CMakeLists.txt中的cmake版本如果低于3.23,则修改为高于3.23的版本

在根目录下执行install 命令,会生成CMakeUserPresets.json文件以及build文件夹
conan install .

CMakeUserPresets.json 其中包含了生成的CMakePresets.json文件路径
{
    "version": 4,
    "vendor": {
        "conan": {}
    },
    "include": [
        "build\\generators\\CMakePresets.json"
    ]
}

CMakePresets.json 包含配置和构建的相关信息
{
    "version": 3,
    "vendor": {
        "conan": {}
    },
    "cmakeMinimumRequired": {
        "major": 3,
        "minor": 15,
        "patch": 0
    },
    "configurePresets": [
        {
            "name": "conan-default",
            "displayName": "'conan-default' config",
            "description": "'conan-default' configure using 'Visual Studio 17 2022' generator",
            "generator": "Visual Studio 17 2022",
            "cacheVariables": {
                "CMAKE_POLICY_DEFAULT_CMP0091": "NEW"
            },
            "toolset": {
                "value": "v143",
                "strategy": "external"
            },
            "architecture": {
                "value": "x64",
                "strategy": "external"
            },
            "toolchainFile": "generators\\conan_toolchain.cmake",
            "binaryDir": "D:\\develop\\workspace\\tmp\\conanexe\\build"
        }
    ],
    "buildPresets": [
        {
            "name": "conan-release",
            "configurePreset": "conan-default",
            "configuration": "Release",
            "jobs": 16
        }
    ],
    "testPresets": [
        {
            "name": "conan-release",
            "configurePreset": "conan-default",
            "configuration": "Release"
        }
    ]
}
根据内容可以看到这里的 configurePresets 的name是conan-default
执行
cmake --preset conan-default
buildPresets的name是conan-release
cmake --build --preset conan-release
生成目录结构如下

在 build\Release 目录下可以看到foo.exe文件

4. 在一个现成的项目中添加conan配置
这里准备一个新的工程,目录结构如下,主要测试添加boost依赖
conanfile.txt
[requires]
boost/1.85.0

[generators]
CMakeDeps
CMakeToolchain

[layout]
cmake_layout
CMakeLists.txt
cmake_minimum_required(VERSION 3.28)
project(conandemo)

set(CMAKE_CXX_STANDARD 17)

find_package(Boost REQUIRED)

add_executable(conandemo main.cpp)

target_link_libraries(conandemo boost::boost)
main.cpp
#include <iostream>
#include <boost/algorithm/string.hpp>

int main() {
    std::string str = "Hello, World!";
    boost::algorithm::to_upper(str);
    std::cout << str << std::endl; // 输出: HELLO, WORLD!
    return 0;
}
执行构建
conan install . --build=missing
cmake --preset conan-default
cmake --build --preset conan-release
执行conandemo.exe 正常输出
 
5. 在clion中配置conan2
添加插件
配置conan2的路径
配置完后会自动生成CMakeUserPresets.json和conan_provider.cmake
 
可以看到cmake上添加了conan的参数
 
-DCMAKE_PROJECT_TOP_LEVEL_INCLUDES="conan_provider.cmake"
-DCONAN_COMMAND="D:\develop\program\Conan\conan\conan.exe"
但是如果想通过插件来添加依赖的话,就不能使用txt的配置,插件会生成conandata.yml 和 conanfile.py配置文件

6. 在visual studio中配置conan
添加插件
配置conan路径

0
注意:visual stuido下 conan扩展只支持 msbuild项目,cmake的项目并不支持。

 

 

 

 

c++
conan2

关于作者

落雁沙
非典型码农
获得点赞
文章被阅读