首页 > 其他分享 >conan 使用

conan 使用

时间:2024-08-22 11:07:32浏览次数:12  
标签:remote -- conan build install 使用 远程

1. 远程库
conan remote -h
    list                List current remotes#查看所有远程库
    add                 Add a remote#添加一个远程库
    remove              Remove a remote#删除一个远程库
    update              Update the remote url# 更新远程库的url
    rename              Update the remote name# 更新远程库的名称

1.1 查看所有远程库
conan remote list

# conancenter: https://center.conan.io [Verify SSL: True]

1.2 添加远程库
conan remote add 远程仓库名 远程仓库url

conan remote add factory http://192.168.3.234:8081/artifactory/api/conan/conan

1.3 删除远程库
conan remote add 远程仓库名

conan remote remove factory http://192.168.3.234:8081/artifactory/api/conan/conan

1.4 更改远程仓库
更改远程仓库的url:

​ conan remote update factory 远程仓库名 远程仓库url

更新远程库的名称:

​ conan remote rename 远程仓库old名 远程仓库new名

#更改远程仓库的url: 
conan remote update factory http://192.168.3.234:8081/artifactory/api/conan/conan
conan remote rename factory factory1

1.5 推送到远程库
conan upload 包名/版本@用户/渠道 --all -r=远程仓库名
conan upload hello/0.1@demo/testing --all -r my_local_server

1.6 搜索远程库中的包
conan search glog --r 远程仓库名
conan search glog --r conancenter # 搜索conan-center中的glogo包

2. 本地库
包的结构包括:包名/版本@用户/渠道

2.1 搜索包
#列出本地库中所有包
conan search *

#列出指定远程库中的所有包
conan search "*" --remote=conancenter

#在指定的远程库中搜索指定包
conan search poco --remote=conancenter

2.2 查看包的详细信息
conan inspect 包名/版本
conan inspect poco/1.9.4

2.3 下载包到本地库
conan install glog/0.4.0@bincrafters/stable -r conancenter

# 通过本地文件中的conanfile.txt生成包,并安装所需的依赖
conan install ..

2.4 删除本地库中的包
conan remove glog/0.4.0@bincrafters/stable

3. 使用conan管理项目包依赖
3.1 创建conanfile.txt
默认是使用静态库方式引入第三方库
[requires]
glog/0.4.0@bincrafters/stable

[generators]
cmake

使用动态库方式引入第三方库
[options]
*:shared=True     # 使用动态库形式

[imports]
bin, *.dll -> ./bin # Copies all dll files from packages bin folder to my "bin" folder
lib, *.dylib* -> ./bin # Copies all dylib files from packages lib folder to my "bin" folder

然后执行:

通过conanfile.txt从远端仓库下载所需要的依赖包

-s build_type=Debug

可以使用一下形式,来覆盖默认的配置文件同3.5

debug_shared

 include(default)

 [settings]
 build_type=Debug

 [options]
 poco:shared=True
 poco:enable_apacheconnector=False
 openssl:shared=True

conan install .. -pr=debug_shared
conan install .

# --install-folder指定安装包的位置
conan install . --install-folder=md5_build

3.3 查看本地conanfile.txt文件中的依赖
conan info .

3.4 通过cmake生成项目文件
C:\install\CMake\bin\cmake.EXE --no-warn-unused-cli -DCMAKE_EXPORT_COMPILE_COMMANDS:BOOL=TRUE -Sd:/User/Desktop/conanproject -Bd:/User/Desktop/conanproject/build -G "Visual Studio 16 2019" -T host=x64 -A x64

3.5 编译项目文件生成可执行文件
如果出现:error LNK2038: 检测到“_ITERATOR_DEBUG_LEVEL”的不匹配项
可能就需要修改:“C:\Users\15282.conan\profiles\default”

​ build_type=Debug(默认为Release)
或者直接修改cmake的编译选项为Release

C:\install\CMake\bin\cmake.EXE --build d:/User/Desktop/conanproject/build --config Debug --target md5 -j 18 --

4. 创建一个新的Package
4.1 使用conan new创建一个信息包
会生成以下文件:

conanfile.py:在根文件夹上,有一个 conanfile.py 它是主配方文件,负责定义如何构建和使用包。
CMakeLists.txt:一个简单的通用CMakeLists.txt,里面没有任何关于柯南的具体内容。
src 文件夹:包含简单C++"hello"库的 src 文件夹。
(可选)test_package文件夹:包含一个示例应用程序,该应用程序将需要并与创建的包链接。这不是强制性的,但检查我们的软件包是否正确创建是很有用的。
conan new hello/0.1 --template=cmake_lib

4.1.1 conanfile.py的包装配方
settings是项目范围的配置,不能在配方(如操作系统或体系结构)中默认。
options是特定于包的配置,可以在配方中默认,在这种情况下,我们可以选择将包创建为共享或静态库,默认为静态。
4.1.2 config_options() 通过判断不同的系统或者编译器之类的,用于微调option. 4.1.3 generate() 执行将创建一个映射 Conan 和 CMake 语法的 conan_toolchain.cmake 文件 4.1.4 build() 调用cmake的 configure和build 4.1.5 package() 该方法将项目(标头、库)从生成文件夹复制到最终的包文件夹。可以说会用copy,也可以使用cmake的install 4.1.6 package_info() 该方法定义了使用者在使用此包时必须链接到"hello"库。也可以定义包含或 lib 路径等其他信息. 4.1.7 source() 用于通过git获取github仓库的源代码文件 def source(self): git = tools.Git(folder="hello") git.clone("https://github.com/conan-io/hello.git", "master") 4.2 test_package目录 测试是"包"测试,并验证包是否已正确创建,以及包使用者将能够链接到它并重用它 4.3 创建并测试包 -o hello:shared=True -s build_type=Debug conan create和conan install的命令相同 conan create . 用户/渠道 conan create . demo/testing

 

标签:remote,--,conan,build,install,使用,远程
From: https://www.cnblogs.com/lovebay/p/18373389

相关文章

  • mybatis-plus配置自定义sqlInjector(使用InsertBatchSomeColumn),出现Invalid bound stat
    项目一开始未引入mybatis-plus,使用的是mybatis,配置文件为xml,有一个配置类中配置了SqlSessionFactory的相关内容。引入mybatis-plus后,想使用InsertBatchSomeColumn遇到Invalidboundstatement(notfound),多处配置发现没有效果并依旧报错,最终在刚才的配置类中的SqlSessionFact......
  • 使用PowerShell自动化Windows系统管理任务
    1.管理服务列出所有服务Get-Service启动服务Start-Service-Name"ServiceName"停止服务Stop-Service-Name"ServiceName"2.管理计划任务创建计划任务$Action=New-ScheduledTaskAction-Execute"C:\Path\To\Executable.exe"$Trigger=New-ScheduledTask......
  • RAG 使用Rerank和两阶段检索来提升你的检索质量
    检索增强生成(RAG)是一个含义丰富的术语。它向世界许诺,但在开发出RAG管道后,我们中的许多人仍然在疑惑,为什么它的效果不如我们预期的那样好。与大多数工具一样,RAG易于使用但难以掌握。事实是,RAG不仅仅是将文档放入矢量数据库并在上面添加LLM。这可以奏效,但并不总是......
  • 提升代码迭代速度的Python重载方法使用详解
        概要在Python编程中,模块是组织代码的重要工具,它们使得代码更加模块化和易于维护。在开发和调试过程中,有时需要对已经导入的模块进行修改并重新加载以应用更改。Python提供了一个名为reload的模块,用于在不重新启动解释器的情况下重新加载已经导入的模块。本文将详......
  • Python是一种广泛使用的编程语言,其主要用途有什么?
    Python是一种广泛使用的编程语言,其主要用途包括但不限于以下几个方面:1.Web开发Python拥有众多Web开发框架,如Django和Flask,这些框架使得开发者能够高效地构建和维护Web应用程序。许多著名的网站,如YouTube、Instagram以及国内的豆瓣等,都是使用Python进行开发的。2.数据科学......
  • 使用 JsonSchema 校验 JSON数据
    有时候JSON数据格式需要校验是否合法,我们可以使用JsonSchema来校验数据是否合法。引入pom.xmlhttps://json-schema.org/<dependency><groupId>com.networknt</groupId><artifactId>json-schema-validator</artifactId><versio......
  • 使用 Vue I18n 进行 Vue.js 应用的国际化
    随着互联网的全球化发展,开发多语言支持的应用变得越来越重要。Vue.js作为一个流行的前端框架,通过vue-i18n插件,能够非常方便地实现应用的国际化(i18n)。本文将介绍如何在Vue.js应用中使用vue-i18n进行国际化设置。什么是国际化(i18n)?国际化(Internationalization)通常简写......
  • 解决Maven编译出错——不再支持源选项 5,请使用 8 或更高版本。
    问题在idea中新建了空maven模组后,尝试启动它默认提供的主方法,编译出错提示:[INFO][INFO]------------------<org.rhythm.test:classloader-test>------------------[INFO]Buildingclassloader-test1.0-SNAPSHOT[INFO]--------------------------------[jar]--------......
  • 043、Vue3+TypeScript基础,pinia库使用action,在函数中对存储数据进行修改
    01、main.js代码如下://引入createApp用于创建Vue实例import{createApp}from'vue'//引入App.vue根组件importAppfrom'./App.vue'//第一步:引入piniaimport{createPinia}from'pinia'constapp=createApp(App);//第二步:创建pinia实例constpinia=......
  • 多元统计分析——基于R语言的单车使用情况可视化分析
    注:基于R语言的单车使用情况可视化分析为实验记录,存在不足,自行改进。一、提出问题(要解决或分析的问题)1、用户对共享单车的使用习惯,环境对共享单车运营带来的影响?2、共享单车的租赁量主要与哪些环境有关?二、数据来源及选取方法(数据完整可靠)        数......