Conan C/C++ 开源包管理工具

这篇具有很好参考价值的文章主要介绍了Conan C/C++ 开源包管理工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

开始学习C和C++, 认为一切就那么回事, 编程就好.
后来学习 python 发现有些东西我们自己写, 浪费时间. 幸而有 pip 和 conda 等方法安装人家已经写好的包.
回过头再看 C++, 这种东西还是欠缺官方支持.
看了某算命的(Benny Huo)的视频, 介绍 conan. 开始认识这个工具. 并与今日能够做到将将会用的程度.

背景知识

  1. C / C++ 语言编程, 多文件程序设计相关知识
  2. CMake 构建工具的认识. CMakeLists.txt 能够自行编写.
  3. python 语言基础 (可选, 推荐)

背景环境

  1. C/C++ 开发环境
  2. Cmake 已经安装 (推荐版本 ≥ 3.23 \geq 3.23 3.23)
  3. python 开发环境
  4. pip 能够正常使用

说明

conan 这个东西在项目级 C/C++ 程序设计中有很高效果. 但是在单文件的 c++ 的程序性价比很低. 你不大可能为了一个程序源代码文件建立一个项目.
当前(2024-04-11) conan 的使用方法和之前的 conan 使用方法有较大差异, 未来也可能会有较大差异. 如果发现此教程不能使用, 也有可能是版本更新导致.

安装 conan

pip 命令:

pip install conan

此后输入命令conan 得到类似下面的结果, 认为安装成功
Conan C/C++ 开源包管理工具,琐碎的私自开发日志,c语言,c++,java

使用 conan 安装包

项目文件准备

来到准备安装包的项目文件夹, 提前写好CMakeLists.txt .
新建文件, 推荐命名为 conanfile.py (如果不, 则需要指定文件名)

包查找和信息添加

在 conan-center 官网上, 找到你想安装的包(这里以 antlr4 的 c++ 运行时为例), 点击conanfile.py 选项, 复制其中的代码:
Conan C/C++ 开源包管理工具,琐碎的私自开发日志,c语言,c++,java
今后如果有新的包需要添加, 找到对应的包(以 fmt 为例) 找到对应的 conanfile.py 选项, 将新需要的 settings, generators 补到当前的 conanfile.py 的后面. 然后在 requirements 方法中添加 self.requires(...) 信息:

from conan import ConanFile
from conan.tools.cmake import cmake_layout


class ExampleRecipe(ConanFile):
    settings = "os", "compiler", "build_type", "arch" # 这里也相同
    generators = "CMakeDeps", "CMakeToolchain" # 这里相同

    def requirements(self):
        self.requires("fmt/10.2.1") # 补了一个 fmt 的信息
        self.requires("antlr4-cppruntime/4.13.1")

    def layout(self): # 这里相同
        cmake_layout(self)

保存文件

配置信息建立

首次使用需要建立配置信息:

conan profile detect --name DaochiDebug --force

首次建立, 建议不要加 --name 和后面的参数 DaochiDebug
根据生成的信息, 确定配置生成的目录, 可以到对应地址, 修改你的配置.
Conan C/C++ 开源包管理工具,琐碎的私自开发日志,c语言,c++,java
Conan C/C++ 开源包管理工具,琐碎的私自开发日志,c语言,c++,java

参数说明:

--name xxx 将会生成名为 xxx 的配置文件
--force 如果不加此选项, 运行时发现有同名文件时, 会报错. 加此选项则覆盖掉同名配置文件.

安装包

运行命令(可以在网页上看到)

conan install [ConanFileName]\
  --build=missing\
 [--profile <profile Name>]
 [--output-folder <folder Name>]

参数说明
--build=missing 只构建未曾安装过的 conan 包.
--profile <profile Name> 如果不写, 默认是采用 default 配置
--output-folder <folderName> 很 ** 的设定, 生成的配置信息, 将会放到 folderName 下的 build 文件夹中. 所以我的配置是不写这个.

留意生成信息:
Conan C/C++ 开源包管理工具,琐碎的私自开发日志,c语言,c++,java
注意到蓝字下面第三行信息: “Preset conan-xxx added to CMakePresets.json. Invoke it manually using xxxxxx if cmake >= 3.23”
解释:
如果你的 cmake 版本 >= 3.23 则在当前目录下输入命令:

cmake --preset xxx # (xxx 取决于它生成的信息) 

否则需要输入下面一长串的命令:

cmake <path> -G "Unix Makefiles" \
-DCMAKE_TOOLCHAIN_FILE=xxxx \
-DCMAKE_POLICY_DEFAULT_CMP0091=NEW -DCMAKE_BUILD_TYPE=Debug

之后可以继续编写代码然后转到生成目录运行make 命令生成目标.
每次更新配置, 都需要到根目录运行 cmake --preset xxx 或者是那一长串命令.

这个东西的使用还算方便, 也不用我手动构建然后再关注包的地址等一堆麻烦事. 也是推荐各位使用.
不过版本更新差距也不小, 之前的 conan 的使用和现在的使用有很大不同, 需要关注.文章来源地址https://www.toymoban.com/news/detail-855670.html

到了这里,关于Conan C/C++ 开源包管理工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例

    中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例 中文编程开发语言工具编程实际案例:美发店会员管理系统软件编程实例。 软件功能: 1、系统设置:参数设定,账号及权限设置,系统初始化,卡类型设置,积分清零等。 2、会员信息登记:可以刷卡

    2024年02月07日
    浏览(42)
  • 中文编程开发语言工具编程案例:计时计费管理系统软件连接灯控器编程案例

    计时计费管理系统软件连接灯控器 计时计费管理系统软件连接灯控器编程案例

    2024年02月07日
    浏览(40)
  • logstack 日志技术栈-04-opensource 开源工具 SigNoz+Graylog

    SigNoz 是一个日志收集和分析工具,可以收集和管理来自各种来源的日志、指标、跟踪和异常。 它为使用 OpenTelemetry 检测应用程序提供本机支持,以防止供应商锁定,将收集到的数据存储在 ClickHouse 中,然后在用户友好的仪表板中聚合和可视化数据。 借助 SigNoz,您可以使用其

    2024年01月22日
    浏览(34)
  • logstack 日志技术栈-04-opensource 开源工具 OpenObserve+Grafana Loki

    日志管理包含日志数据存储、处理、分析和可视化,通过利用日志管理工具,可以监控性能趋势、解决问题、检测异常并优化整体系统性能。 近年来,开源日志管理解决方案在大家寻求灵活且经济有效的方式来管理现代系统典型的大量日志数据时,获得了显著的关注。这些工

    2024年01月21日
    浏览(36)
  • 轻量级c语言开源日志库log.c介绍 - 实现不同级别和参数化日志打印

    c语言没有现成的日志库,如果要记录日志,需要自己封装一个日志库。如果要实现日志级别和参数打印,还是比较麻烦的,正好在github找到了一个c语言开源日志库,可以实现日志级别打印,参数打印,而且还会记录日期和行号,最重要的是代码非常少,只有100多行,可以直

    2024年02月07日
    浏览(40)
  • Linux conan+cmake管理的项目如何进行多架构编译(x86_64及交叉编译arm64)

    Conan 和 CMake 是两个非常流行的跨平台开发工具,它们可以让开发者轻松管理依赖和构建项目,支持多种操作系统和架构。下面是一些关于 conan 和 cmake 的介绍: Conan Conan 是一个用于管理 C++ 依赖项的开源工具。它可以从公共或私有存储库中自动下载和安装依赖项。Conan 可以轻

    2024年02月09日
    浏览(35)
  • MySQL 8.0 的工具日志配置管理

    error log : 错误日志 genernal log : 普通日志 binlog : 二进制日志 slow log : 慢日志 设置错误日志等级 生效时间 mysql set global log_error_verbosity=3; 下一次登录生效。 作用 记录了MySQL 发生过的修改的操作的日志。,除了show select ,修改操 作都会记录binlog 数据恢复、主从、SQL问题排查

    2024年02月11日
    浏览(40)
  • linux日志管理工具logrotate配置

    logrotate是centos自带工具,其他操作系统可能需要自行安装。logrotate用来进行日志切割和定期删除。 logrotate通过简单配置,帮助我们实现日志切割,以及对久远日志的删除,从而避免单个日志文件过大,以及众多的日志文件占用存储空间。 logrotate是基于crond服务(定时任务)来

    2024年02月11日
    浏览(29)
  • logstack 日志技术栈-04-opensource 开源工具 Syslog-ng+Highlight.io

    Syslog-ng 是一个开源的日志管理解决方案,主要用于收集和处理日志数据。它可以从多种源收集日志,包括系统日志、网络设备日志和第三方应用日志。 然后将日志解析、分类、重写和关联到统一格式中,然后将其存储或安全地传输到不同的系统(如 Apache Kafka 或 Elasticsearch)

    2024年01月21日
    浏览(44)
  • 抖音seo源码-源代码开发搭建-开源部署操作日志

      抖音seo源码开发是一项非常重要的技术,在抖音上,有很多视频,如果你想让自己的视频脱颖而出,那么就需要优化自己的seo源码。不过,为了保护用户的隐私,抖音并不公开其seo算法的细节,因此需要开发者自己探索。抖音SEO矩阵系统源码开发功能模型是指在抖音平台上

    2024年02月13日
    浏览(34)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包