【小沐学C++】C/C++包管理工具Conan使用(C++、Python、CMake、Conan)

news/发布时间2024/5/18 14:20:29

文章目录

  • 1、简介
  • 2、Conan下载安装
  • 3、Conan命令
    • 3.1 查看conan版本
    • 3.2 更新conan库
    • 3.3 搜索软件包
    • 3.4 显示conan所有源
    • 3.5 查看软件包
    • 3.6 通过conanfile.txt安装依赖包
  • 结语

在这里插入图片描述

1、简介

Conan是C和C++语言的依赖项和包管理器。它是免费和开源的,适用于所有平台(Windows、Linux、OSX、FreeBSD、Solaris等),可用于开发所有目标,包括嵌入式、移动(iOS、Android)和裸机。它还集成了所有构建系统,如CMake、Visual Studio(MSBuild)、Makefiles、SCons等,包括专有系统。

  • Conan仓库地址
    https://conan.io/center
    在这里插入图片描述

  • Conan源码地址
    https://github.com/conan-io/conan
    在这里插入图片描述

  • Conan帮助文档
    https://docs.conan.io/2/
    在这里插入图片描述

Conan是一个具有客户端-服务器架构的去中心化包管理器。这意味着客户端可以从不同的服务器(“remotes”)获取包,也可以将包上传到不同的服务器,类似于到git remotes的“git”推拉模型。
在这里插入图片描述

2、Conan下载安装

在这里插入图片描述
Conan 基于 Python 编写,在开始前安装好 Python3。然后使用pip 安装即可。

  • 安装库
pip install conan

在这里插入图片描述

3、Conan命令

Conan客户端常用命令如下:

3.1 查看conan版本

conan --version

在这里插入图片描述

3.2 更新conan库

pip install conan --upgrade  

在这里插入图片描述

3.3 搜索软件包

  • (1)搜索poco库
conan search poco --remote=conancenter

在这里插入图片描述

  • (2)搜索opencv库
conan search opencv* -r=conancenter

在这里插入图片描述

  • (3)搜索zlib库
conan search zlib
conan search zlib -r=conancenter
conan search zlib/1.2.1* -r=conancenter
conan search zlib/1.2.1* -r=conancenter --format=json

在这里插入图片描述

  • (4)搜索glut库
conan search *glut

在这里插入图片描述

  • (5)搜索glfw库
conan search glfw

在这里插入图片描述

  • (6)搜索glad库
conan search glad

在这里插入图片描述

  • (7)搜索glew库
conan search glew

在这里插入图片描述

  • (8)搜索glm库
conan search glm

在这里插入图片描述

  • (9)搜索glbinding库
conan search glbing*

在这里插入图片描述

  • (10)搜索sdl库
conan search sdl*

在这里插入图片描述

  • (10)搜索freetype库
conan search freetype*

在这里插入图片描述

  • (11)搜索freeimage库
conan search freeimage*

在这里插入图片描述

  • (12)搜索boost库
conan search boost

在这里插入图片描述

3.4 显示conan所有源

conan remote list

在这里插入图片描述

3.5 查看软件包

conan inspect <包名>/<版本>
conan inspect poco/1.9.4

在这里插入图片描述

3.6 通过conanfile.txt安装依赖包

# 配置仓库,执行该命令会在当前目录生成conan的工程信息
conan install <conanfile.txt所在的目录># 编译确实二进制的包
conan install <conanfile.txt所在的目录> --build=missing# 指定编译器和系统
conan install <conanfile.txt所在的目录> --settings os="Linux" --settings compiler="gcc"# 指定配置,默认profile=default
conan install <conanfile.txt所在的目录> --profile=gcc_x64conan install .. -o poco:shared=True -o openssl:shared=True
# or even with wildcards, to apply to many packages
conan install .. -o *:shared=True
conan install conanfile.txt --build=missingconan install .
  • 以glfw库使用为例,操作步骤如下:

  • 新建conanfile.txt:

[requires]
glfw/3.3.8[generators]
CMakeDeps
CMakeToolchain
  • 创建默认conan配置
conan profile detect --force

在这里插入图片描述

  • 下载和编译依赖项
conan install . --output-folder=build --build=missing

在这里插入图片描述

  • 在子文件夹src准备测试代码文件main.c
#include <GLFW/glfw3.h>int main(void)
{GLFWwindow* window;/* Initialize the library */if (!glfwInit())return -1;/* Create a windowed mode window and its OpenGL context */window = glfwCreateWindow(640, 480, "Hello World, 爱看书的小沐", NULL, NULL);if (!window){glfwTerminate();return -1;}/* Make the window's context current */glfwMakeContextCurrent(window);/* Loop until the user closes the window */while (!glfwWindowShouldClose(window)){/* Render here */glClear(GL_COLOR_BUFFER_BIT);glClearColor(0, 0, 1, 1);/* Swap front and back buffers */glfwSwapBuffers(window);/* Poll for and process events */glfwPollEvents();}glfwTerminate();return 0;
}
  • 编写构建脚本文件CMakeLists.txt
cmake_minimum_required(VERSION 3.15)project(glfwTest)
message("${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_BINARY_DIR}")find_package(GLFW3 REQUIRED)
message("conan libs : ${CONAN_LIBS}")add_executable(${PROJECT_NAME} src/main.cpp)
# target_link_libraries(${PROJECT_NAME} ${CONAN_LIBS})
target_link_libraries(${PROJECT_NAME} glfw)

在这里插入图片描述

  • 编译测试程序
$ cd build
# assuming Visual Studio 15 2017 is your VS version and that it matches your default profile
$ cmake .. -G "Visual Studio 15 2017" -DCMAKE_TOOLCHAIN_FILE="conan_toolchain.cmake"
$ cmake --build . --config Release

在这里插入图片描述
在这里插入图片描述
运行编译好的程序如下:在这里插入图片描述

结语

如果您觉得该方法或代码有一点点用处,可以给作者点个赞,或打赏杯咖啡;╮( ̄▽ ̄)╭
如果您感觉方法或代码不咋地//(ㄒoㄒ)//,就在评论处留言,作者继续改进;o_O???
如果您需要相关功能的代码定制化开发,可以留言私信作者;(✿◡‿◡)
感谢各位童鞋们的支持!( ´ ▽´ )ノ ( ´ ▽´)っ!!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.bcls.cn/yrJf/7977.shtml

如若内容造成侵权/违法违规/事实不符,请联系编程老四网进行投诉反馈email:xxxxxxxx@qq.com,一经查实,立即删除!

相关文章

MYSQL安装及卸载

目录 一、下载 二、解压 三、配置 1. 添加环境变量 2. 初始化MySQL 3. 注册MySQL服务 4. 启动MySQL服务 5. 修改默认账户密码 四、登录MySQL 五、卸载MySQL 一、下载 点开下面的链接&#xff1a;MySQL :: Download MySQL Community Server 点击Download 就可以下载对…

12. Springboot集成Dubbo3(三)Dubbo-Admin

目录 1、前言 2、安装 2.1、下载Dubbo-admin 2.2、修改配置 2.3、编译前端 2.4、访问 2.5、加载自己的服务 2.6、服务测试 2.7、其他 3、小结 1、前言 Dubbo Admin是用于管理Dubbo服务的基于Web的管理工具。Dubbo Admin提供了一个用户友好的界面&#xff0c;用于在分…

Jest和Mocha对比:两者之间有哪些区别?

什么是单元测试&#xff1f; 所谓单元测试&#xff0c;是对软件中单个功能组件进行测试的一种软件测试方式&#xff0c;其目的是确保代码中的每一个基本单元都能正常运行。因此&#xff0c;开发人员在应用程序开发的整个过程&#xff08;即代码编写过程&#xff09;中都需要进行…

十一、计算机视觉-膨胀操作

文章目录 前言一、什么是膨胀二、膨胀操作的实现1.引入库 三、膨胀的原理 前言 上节我们学习了腐蚀操作&#xff0c;本节我们讲一下膨胀操作&#xff0c;膨胀和腐蚀实际上是相反的操作。上节我们把云峰这2个字周围没用的像素去掉了&#xff0c;但是云峰这2个字也变细了&#x…

蓝桥杯《数字三角形》

题目描述 上图给出了一个数字三角形。从三角形的顶部到底部有很多条不同的路径。对于每条路径&#xff0c;把路径上面的数加起来可以得到一个和&#xff0c;你的任务就是找到最大的和。 路径上的每一步只能从一个数走到下一层和它最近的左边的那个数或者右边的那个数。此外&…

Spring Boot+Tess4j实现OCR接口

OCR部分 OCR&#xff0c;即光学字符识别&#xff0c;是一种将纸质文档上的文字转化为计算机可编辑文本的技术。它利用图像处理技术和模式识别算法&#xff0c;对扫描或拍摄的文档图片进行分析&#xff0c;提取出其中的文字信息。OCR技术广泛应用于文档数字化、自动化数据录入等…

概率基础——几何分布

概率基础——几何分布 介绍 在统计学中&#xff0c;几何分布是描述了在一系列独立同分布的伯努利试验中&#xff0c;第一次成功所需的试验次数的概率分布。在连续抛掷硬币的试验中&#xff0c;每次抛掷结果为正面向上的概率为 p p p&#xff0c;反面向上的概率为 1 − p 1-p …

ElasticSearch之单值多字段查询以及multi match

写在前面 在这篇文章 我们看了使用dis_max查询来进行单值多字段场景下的查询&#xff0c;如下&#xff1a; POST /blogs/_search {"query": {"dis_max": {"queries": [{"match": {"title": "Brown fox"}},{&quo…

MySQL 篇-深入了解 DDL 语言(一)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 MySQL 说明 2.0 DDL 语言 2.1 DDL 语言 - 定义数据库 2.1.1 创建数据库操作 2.1.2 查看数据库操作 2.1.3 使用数据库操作 2.1.4 删除数据库操作 2.2 DDL 语言 …

nginx 从$http_x_forwarded_for 中获取第一个参数

在 Nginx 中&#xff0c;$http_x_forwarded_for 变量通常包含了客户端的原始 IP 地址以及可能经过的代理服务器的 IP 地址列表&#xff0c;这些地址由逗号分隔。如果你想从 $http_x_forwarded_for 中截取第一个参数&#xff08;即最左边的 IP 地址&#xff09;&#xff0c;你可…

R语言空间分析、模拟预测与可视化

随着地理信息系统&#xff08;GIS&#xff09;和大尺度研究的发展&#xff0c;空间数据的管理、统计与制图变得越来越重要。R语言在数据分析、挖掘和可视化中发挥着重要的作用&#xff0c;其中在空间分析方面扮演着重要角色&#xff0c;与空间相关的包的数量也达到130多个。在本…

手撕SelfAttention

一、目录 定义代码实现 二、实现 定义 代码实现 #手撕 self attention import torch import torch.nn as nn import numpy as npclass SelfAttention(nn.Module):def __init__(self,hidden_dim,dim_q,dim_v):super(SelfAttention,self).__init__()self.hidden_dimhidden_dim…

【Pytorch深度学习开发实践学习】B站刘二大人课程笔记整理lecture09 Softmax多分类

代码&#xff1a; import torch from torchvision import datasets, transforms from torch.utils.data import DataLoader import torch.nn as nn import torch.nn.functional as Fbatch_size 64 transform transforms.Compose([transforms.ToTensor(), transforms.Normali…

Hikvision SPON IP网络对讲广播系统命令执行漏洞

声明 本文仅用于技术交流&#xff0c;请勿用于非法用途 由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失&#xff0c;均由使用者本人负责&#xff0c;文章作者不为此承担任何责任。 1.漏洞描述 Hikvision Intercom Broadcasting System是中国海康威视&a…

Stable Diffusion 3的到来巩固了 AI 图像对抗 Sora 和 Gemini 的早期领先优势

Stability AI 将其更改为 Stable Diffusion 3。VentureBeat 报道称&#xff0c;Stability AI 的下一代旗舰 AI 图像生成模型将使用类似于 OpenAI 的 Sora 的扩散变压器框架。其当前模型仅依赖于扩散架构。虽然尚未发布&#xff0c;但您可以在等候名单中注册。 官方网址链接&am…

Sentinel 动态规则扩展

一、规则 Sentinel 的理念是开发者只需要关注资源的定义&#xff0c;当资源定义成功后可以动态增加各种流控降级规则。Sentinel 提供两种方式修改规则&#xff1a; 通过 API 直接修改 (loadRules)通过 DataSource 适配不同数据源修改 手动通过 API 修改比较直观&#xff0c;…

Redis 16种妙用

1、缓存 2、数据共享分布式 3、分布式锁 4、全局ID 5、计数器 6、限流 7、位统计 8、购物车 9、用户消息时间线timeline 10、消息队列 11、抽奖 12、点赞、签到、打卡 13、商品标签 14、商品筛选 15、用户关注、推荐模型 16、排行榜 1、缓存 String类型 例如&#xff1a;热点…

通过Power automate上传文件到SharePoint

上传文件到SharePoint 背景过程Apps开发准备Flow开发SharePoint数据库测试 背景 我们通常都可以通过一些form表单直接上传文件&#xff0c;但是有些时候我们需要对文件名字等信息做一些处理。这个时候我们就需要将文件的内容json流化&#xff0c;然后在流中还原回来。 过程 …

Nginx网络服务六-----IP透传、调度算法和负载均衡

1.实现反向代理客户端 IP 透传 就是在日志里面加上一个变量 Module ngx_http_proxy_module [rootcentos8 ~]# cat /apps/nginx/conf/conf.d/pc.conf server { listen 80; server_name www.kgc.org; location / { index index.html index.php; root /data/nginx/html/p…

设计模式(六)代理模式

相关文章设计模式系列 1.代理模式简介 代理模式介绍 代理模式也叫委托模式&#xff0c;是结构型设计模式的一种。在现实生活中我们用到类似代理模式的场景有很多&#xff0c;比如代购、代理上网、打官司等。 定义 为其他对象提供一种代理以控制这个对象的访问。 代理模式…
推荐文章