首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Conan要在requires中查找备用库

Conan是一个开源的C/C++包管理器,用于管理和构建C/C++项目的依赖库。在Conan中,requires是一个用于指定项目所需依赖库的部分。

当Conan在构建项目时,它会根据requires中指定的依赖库名称和版本号去查找这些库。如果找到了对应的库,Conan会将其下载并构建到项目中。但是,有时候某个依赖库可能无法找到或者版本不兼容,这时就需要在requires中指定备用库。

在requires中查找备用库的过程如下:

  1. 首先,Conan会检查本地缓存中是否已经下载了备用库的二进制文件。如果有,它会直接使用这些二进制文件,而不需要重新下载和构建。
  2. 如果本地缓存中没有备用库的二进制文件,Conan会根据requires中指定的库名称和版本号去远程仓库中查找备用库。远程仓库可以是公共的Conan仓库,也可以是私有的仓库。
  3. 如果在远程仓库中找到了备用库,Conan会下载并构建这个库,并将其添加到项目中。
  4. 如果在远程仓库中没有找到备用库,Conan会尝试使用源码构建这个库。它会下载备用库的源码,并根据项目的构建配置进行编译和安装。
  5. 如果源码构建也失败了,Conan会报告错误,并提示用户检查依赖库的名称和版本号是否正确,或者尝试使用其他的备用库。

需要注意的是,Conan支持多个备用库的指定。可以在requires中列出多个备用库的名称和版本号,Conan会按照顺序去查找这些库,直到找到一个可用的库为止。

推荐的腾讯云相关产品: 腾讯云容器服务(Tencent Kubernetes Engine,TKE):腾讯云提供的容器服务,支持快速部署和管理容器化应用,可以方便地使用Conan构建的项目进行部署和管理。了解更多信息,请访问:https://cloud.tencent.com/product/tke

腾讯云对象存储(Tencent Cloud Object Storage,COS):腾讯云提供的高可靠、低成本的对象存储服务,可以用于存储Conan构建的项目所需的依赖库和二进制文件。了解更多信息,请访问:https://cloud.tencent.com/product/cos

腾讯云云服务器(Tencent Cloud Virtual Machine,CVM):腾讯云提供的弹性计算服务,可以用于运行Conan构建的项目。了解更多信息,请访问:https://cloud.tencent.com/product/cvm

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Xmake v2.8.1 发布,大量细节特性改进

    而在这个版本,我们改进了安装器,提供一个安装选项,让用户选择性开启长路径支持。 这需要管理员权限,因为它需要写注册表。...add_rules("mode.debug", "mode.release") add_requires("protobuf-cpp") add_requires("grpc", {system = false...但是有时候配置不对,或者不同路径下重名,就容易找错文件。而现在 add_links 可以支持直接设置文件路径,避免隐式搜索。 也可以用于显式指定链接 so/a 。...: 改进 tools.cmake 支持使用 ninja 去构建 wasm 包 #3777: 改进从 pkg-config 查找包 #3815: 改进 tools.xmake 支持为 windows 平台传递工具链...Bugs 修复 #3755: 修复 find_tool 从 xmake/packages 查找程序 #3787: 修复从 conan 2.x 中使用包 #3839: 修复 conan 2.x 包的

    23720

    conan入门(十):Windows下Android NDK交叉编译Boost

    conan Windows下Android NDK交叉编译Boost 上一篇博客《conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义》我们以jsonlib为例说明了如何NDK...这次Android NDK交叉编译Boost,才真正体现了conan的好处,定义好profiile后,只需要执行conan install就可以完成交叉编译过程,缺少的依赖会自动被编译,真是很方便。...入门(九):NDK交叉编译自己的conan包项目塈profile的定义》的android_21_arm_clang略有不同: 并且[options]增加了addr2line_location定义,否则交叉编译...在编译其他项目时用不到addr2line_location,如果有它反而会报错,所以考虑到profile的复用性,要在addr2line_location定义前加boost:前缀,指定只用于boost编译...) 项目编译成功就可以上执行conan upload传到私有制品了: conan upload boost/1.69.0 -r ${repo} --all # ${repo}为私有制品的名字 –

    1.8K20

    conan入门(六):conanfile.txt conanfile.py的区别

    conan conanfile.txt conanfile.py的区别 在之前的博客《conan入门(四):conan 引用第三方示例》我们以cJSON为例说明了如何在项目中引用一个conan 包。...conanfile.txt 在这篇博客我们为了引用cjson/1.7.13,创建了一个conanfile.txt文件用于指定json_test.c程序的依赖cjson [requires] cjson...conanfile.py 在《conan入门(三):上传预编译的(artifact)》,我们用到了create new创建一个新的包: 使用conan new命令创建基本配置: $ cd cjson.build...: conanfile.txt是一种简单的conan配置定义方式,并不是每个程序员都懂python脚本(我就不懂),对于开发人员如果只是作为一个消费者角色(consumer),想使用conan简化第三方的引用方式...,在大多数情况下,一般只要正确设置requires,generators,conan就可以正常工作,那么首选使用conanfile.txt这种配置文件定义方式,因为它是更加直观易懂的。

    95720

    xmake v2.5.5 发布,支持下载集成二进制镜像包

    另外,新版本,我们还重新实现了新版的本地包生成方案,完全无缝支持 add_requires 和 add_packages,从此远程包和本地包可以使用统一的集成方式来维护。...所以,如果用户想要贡献包进我们的仓库,基本上都是可以被预编译缓存的(除了 headeronly ),而如果用户不想贡献包,也想获取对应包的预编译加速,也是可以的。...我们只需要在打包时候,修改包格式。 $ xmake package -f remote 他也会产生 packages/f/foo/xmake.lua 文件。...::openssl The package names: conan::openssl: -> conan::openssl/1.1.1g: -> conan::openssl...#1422: 支持从 vcpkg, conan 搜索包 #1424: 设置 binary 作为默认的 target 目标类型 #1140: 支持安装时候,手动选择从第三包包管理器安装包 #1339:

    89110

    conan入门(十一):Linux下Android NDK交叉编译Boost

    conan Linux下Android NDK交叉编译Boost 上一篇博客《conan入门(十):Windows下Android NDK交叉编译Boost》已经说明了Windows下Android...本文在此基础上说明Linux下conan实现Android NDK交叉编译经常用到的的Boost的过程。 相比Windows平台,Linux下遇到的问题要少很多。...conan install 命令行用法详细说明参见Conan官方文档《conan install》 -o without_stacktrace=True 指定不编译 stacktrace .不知道为什么...upload(上传到私有制品) 项目编译成功就可以上执行conan upload传到私有制品了: conan upload boost/1.69.0 -r ${repo} --all # ${repo...}为私有制品的名字 –all 指定上传所有内容(配置文件conanfile.py,源码和二进制包),如果不指定些选项,只上传除二进制包之外的所有文件 关于 conan upload命令的详细说明参见

    3K30

    这可能是最实用的 Conan 管理依赖贴

    目前, Milvus 社区里的 C++ 项目都在使用 Conan 管理依赖,在改造的过程遇到了一些绕不过去的坑,本文将梳理使用 Conan 过程的一些常见概念、用法和常见问题,方便大家使用、理解。...Conan 的常规用法 安装教程 Conan 在 2023 年 3 月发布了 2.0 版本,但是 2.0 有些第三方包还没完全迁移过去,所以在 Milvus 仍在使用 1.58.0 版本的 Conan...下载、安装依赖,具体细节如下: 在 scripts/core_build.sh 运行 conan install 下载并编译依赖: case "${unameOut}" in Darwin*)...在 core/CMakeLists.txt include 生成的配置信息,即可使用 Conan 定义的第三方依赖: list( APPEND CMAKE_MODULE_PATH ${CMAKE_BINARY_DIR...原理 以编译 Knowhere 为例: 在build目录下运行,可以添加一些自定参数,这些自定义参数需要定义在 conanfile.py conan install ..

    47430

    简单的 CC++ 项目自动化构建--Xmake

    这块可以阅读前文:xmake从入门到精通3:运行和调试目标程序 集成vcpkg包管理 $xmake f --vcpkg=F:\vcpkg 比如加载以下,xmake.lua示例: add_requires...安装后,配置path路径,然后就可以使用了如下: add_requires("conan::poco/1.9.4", {alias = "poco", debug = true}) 添加代理 注意添加代理...关于conanconan这5年期间成长还是挺多的,现在可以用的也达到了八百多个,如果没有的话,也可以很方便的自己写一个,上传到自己的私人包管理服务器里,C++开发终于有了cargo的感觉了。...") target("test") add_files("src/*.c") add_packages("vcpkg::zlib") build结果示例 举例,xmake.lua增加如下依赖...: add_requires("conan::poco/1.9.4", {alias = "poco", debug = true}) build过程: PS F:\ccode\test> xmake

    1.4K10

    项目包管理工具之零基础入门Conan

    项目包管理工具之零基础入门Conan 相信知道学习过CMake、Makefile的同学都知道在管理C++项目依赖时很麻烦,有没有一个包管理工具可以方便的管理第三方呢?...答案是Conan, Conan是一个用于C++项目的开源包管理工具。它的主要目标是简化C++项目的依赖关系管理过程,使开发人员能够更轻松地集成、构建和分享C++。...其中有一些比较独特的功能,例如:版本管理、第三方管理等。 今天从0开始学习一下conan,并以一个单元测试项目为例引入conan的使用。...本节的所有代码也都放在星球,感兴趣的可以扫下方二维码加入即可。...1.Conan安装 pip3 install conan 2.安装第三方 安装第三方时,我们通常需要知道安装的版本,那么conan提供了相应的搜索命令,列出相应的版本。

    18610

    ​项目包管理工具之零基础入门Conan

    项目包管理工具之零基础入门Conan 相信知道学习过CMake、Makefile的同学都知道在管理C++项目依赖时很麻烦,有没有一个包管理工具可以方便的管理第三方呢?...答案是Conan, Conan是一个用于C++项目的开源包管理工具。它的主要目标是简化C++项目的依赖关系管理过程,使开发人员能够更轻松地集成、构建和分享C++。...其中有一些比较独特的功能,例如:版本管理、第三方管理等。 今天从0开始学习一下conan,并以一个单元测试项目为例引入conan的使用。...1.Conan安装 pip3 install conan 2.安装第三方 安装第三方时,我们通常需要知道安装的版本,那么conan提供了相应的搜索命令,列出相应的版本。...[requires] gtest/1.13.0 [generators] cmake 3.添加CMakeLists.txt,内容很简单:其中感叹号部分需要注意。

    47310

    conan入门(十五):AttributeError: ‘CMake‘ object has no attribute ‘definitions‘

    =Visual Studio compiler.runtime=MD compiler.version=14 os=Windows os_build=Windows [options] [build_requires...按照Conan官方文档《default_options》,《How to reuse cmake install for package() method》以及其他已经发布到conan-center上的第三方的脚本...按Conan官方说明conan.tools.cmake是比较新的还在实验阶段的一个功能,conan.tools.cmake.CMake并没definitions成员。...成员 只需要在generate函数增加一行代码 def generate(self): tc = CMakeToolchain(self) tc.variables...这个实验包应该会在conan 2.0变为正式的,如果你和我一样也是刚conan入门,建议使用解决方案一,以避免今后使用遇到其他与官方参考不一致的问题。

    2.3K20

    conan入门(二十五):imports将包安装到本地项目或其他指定位置

    conan imports将包安装到本地项目或其他指定位置 在嵌入式平台开发,我想将conan用作包管理器。...例如,我想运行conan install将依赖安装在在本地项目目录,最好是直接安装到嵌入式平台供应商提供的SDK框架,这样就可以直接利用SDK现成的编译架构完成最终程序编译生成镜像。...所以我不希望从 ~/.conan 目录引用头文件和。否则每次编译后都要手工复制文件到SDK的文件夹或要创建软连接,这都太麻烦了。 imports可以实现这个要求。...imports将文件从 ~/.conan 目录复制到指定位置。因此,通过简单的两行代码,就可以将所有依赖项(头文件、)复制到当前项目也可以复制到你指定的其他位置。...只需将其添加到项目的conanfile.txt或 conanfile.py ,示例如下: conanfile.txt [requires] cjson/1.7.13 [imports] include,

    1K40

    conan入门(二十一):解决MinGW编译Openssl的编译错误:cryptodsodso_win32.c

    conan: 解决MinGW编译Openssl的编译错误:crypto/dso/dso_win32.c 今天在用conan使用MinGW编译openssl/1.1.k,执行如下命令: $ conan install...编译openssl的时候,是需要msys2的,见下图 也就是说msys2自带的gcc会导致上面的编译错误,但Windows下编译openssl又确实需要在msys2提供的bash环境下执行bash编译脚本...64 arch_build=x86_64 compiler=Visual Studio compiler.version=14 build_type=Release [options] [build_requires...dumpversion 获取MinGW版本号 compiler.version=5.2 compiler.libcxx=libstdc++11 build_type=Release [options] [build_requires...gcc.exe # 定义环境变量强制指定C++编译器 # openssl 为纯C项目,不需要C++编译器 #CXX=P:\MinGW\mingw64\bin\g++.exe 因为mingw 配置文件定义了所有必须的参数

    86020
    领券