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

我可以为conanfile中的每个包指定不同的文件夹吗?

是的,您可以为conanfile中的每个包指定不同的文件夹。

在conanfile.py文件中,您可以使用package_folder属性来指定每个包的文件夹路径。package_folder属性是一个字符串,表示包的输出路径。

例如,假设您有一个名为my_package的包,您可以在conanfile.py中指定不同的文件夹路径如下:

代码语言:txt
复制
from conans import ConanFile

class MyPackageConan(ConanFile):
    name = "my_package"
    version = "1.0"
    settings = "os", "compiler", "build_type", "arch"

    def package(self):
        self.output.info("Packaging my_package...")
        self.copy("*.h", dst="include", src="src")
        self.copy("*.lib", dst="lib", keep_path=False)
        self.copy("*.dll", dst="bin", keep_path=False)
        self.copy("*.so", dst="lib", keep_path=False)
        self.copy("*.dylib", dst="lib", keep_path=False)
        self.copy("*.a", dst="lib", keep_path=False)

        # 指定包的文件夹路径
        self.package_folder = "path/to/package/folder"

在上面的示例中,self.package_folder被设置为path/to/package/folder,这将是my_package包的输出路径。

请注意,package_folder属性必须在package()方法中设置,以确保在打包过程中正确地指定文件夹路径。

关于Conan的更多信息和使用方法,您可以参考腾讯云的Conan产品文档:Conan产品介绍

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

相关·内容

我应该提交 vendor 目录中的依赖包吗

vendor 目录(或者你安装依赖的其它目录)都应该被添加进 .gitignore/svn:ignore/等等。最好这么做,然后让所有开发人员使用 Composer 来安装依赖包。...在你自己的 VCS(代码管理工具) 中将产生与你依赖的资源包重复的历史记录。通过 git 的一个 git 仓库安装添加依赖,将把它们视作子模块。...在每一个依赖安装后删除其下的 .git 文件夹,然后你就可以添加它们到你的 git repo 中。...但这意味着你在运行 composer update 命令前需要先删除磁盘中的依赖文件。...通过上面的文字内容,我们知道在使用 Composer 项目的时候,我们不要把 vendor 中的内容也提交到代码管理库中,而应该使用 Composer 自己在运行的时候下载。

13110

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...这些问题把刚conan入门的我搞糊涂了。...: conanfile.txt是一种简单的conan配置定义方式,并不是每个程序员都懂python脚本(我就不懂),对于开发人员如果只是作为一个消费者角色(consumer),想使用conan简化第三方库的引用方式

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

    conan imports将包安装到本地项目或其他指定位置 在嵌入式平台开发中,我想将conan用作包管理器。...例如,我想运行conan install将依赖库安装在在本地项目目录中,最好是直接安装到嵌入式平台供应商提供的SDK框架中,这样就可以直接利用SDK现成的编译架构完成最终程序编译生成镜像。...否则每次编译后都要手工复制库文件到SDK的文件夹中或要创建软连接,这都太麻烦了。 imports可以实现这个要求。imports将文件从 ~/.conan 目录复制到指定位置。.../deps/lib include,lib为复制文件的源文件夹,必须是个相对路径,即为所有依赖库在本地仓库的相对文件夹 *为指定要复制文件的通配符,如*.h,*.a ./deps/include,..../deps/lib为文件复制的目标文件夹,可以是个绝对路径,如果不是绝对路径,那么视为相对于当前项目文件夹的相对路径 上面的例子,将项目的所有依赖库(cjson)的include,lib下所有文件分别复制到项目文件夹的

    1.1K41

    conan入门(四):conan 引用第三方库示例

    通过完整的二进制包管理,它可以为任意数量的不同版本的包创建和重用任意数量的不同二进制文件(用于不同的配置,如架构、编译器版本等),在所有平台上使用完全相同的过程。...conan 包命名约定 标准的conan 包名引用(reference)格式是:package_name/version@user/channel,用于在制品仓库中唯一的识别一个包 package_name...,包名中package_name/version是必须要有的字段.user,channel都是可选字段,上传用户在上传包时可以不指定。...的详细说明参见Conan官方文档《conanfile.txt》 conan search 创建conanfile.txt过程中我们可以通过conan search cjson -r conancenter...在上面的执行conan install时指定..作为路径参数,即指定下载../conanfile.txt中[requires]定义的所有依赖库。

    2.8K30

    conan入门(一):conan 及 JFrog Artifactory 安装

    Conan 可以为不同的构建配置管理任意数量的不同二进制文件,包括不同的架构、编译器、编译器版本、运行时、C++ 标准库等。当二进制文件不适用于一种配置时,它们可以根据需要从源构建。...Conan 可以在每个平台上使用相同的命令和流程创建、上传和下载二进制文件,从而节省大量开发和持续集成时间。二进制兼容性甚至可以在每个包的基础上进行配置和定制。...,执行上面的conan new命令后会生成如下文件: conanfile.py:在根文件夹中有一个conanfile.py,它是主要的配置文件,负责定义包的构建和使用方式。...文件夹的内容test_package现在对于理解包是如何创建的并不重要,重要的是: test_package文件夹不同于单元测试或集成测试。...它本身是一个小型的柯南项目,它包含自己的conanfile.py,以及它的源代码,包括构建脚本,这取决于正在创建的包,并构建和执行一个需要包中的库的小应用程序。 它不属于包。

    4.8K41

    conan入门(十九):封装第三方开源库cpp_redis示例

    conan: 封装第三方开源库cpp_redis示例 在我的之前关于conan系列博客中,已经介绍过如何引用Conan中央仓库(conan-center)预定义的第三库(《conan入门(五):conan...cpp_redis是一个C++11实现的redis client库,我的项目中需要使用它,但它目前并没有被Conan中央仓库收录,所以本文以cpp_redis为例介绍将第三方库封装为Conan包的过程。...conan create .根据配置文件 (同级文件夹下的conanfile.py) 构建二进制包 conan create 命令行用法参见Conan官方文档《conan create》 执行conan.../4.3.1 -r ${repo} --all # ${repo}为私有制品库的名字 –all 指定上传所有内容(配置文件conanfile.py,源码和二进制包),如果不指定些选项,只上传除二进制包之外的所有文件...的测试代码文件夹,这就需要根据不同的第三方库来自己设计,关于cpp_redis的test_package参见码云仓库 https://gitee.com/l0km/cpp_redis.build/tree

    1.3K30

    配置文件中的数据库连接串加密了,你以为我就挖不出来吗?

    讲故事 前几天在调试物联柜终端上的一个bug时发现 app.config 中的数据库连接串是加密的,因为调试中要切换数据库,我需要将密文放到专门的小工具上解密,改完连接串上的数据库名,还得再加密贴到 app.config...私以为搞这么麻烦也就防防君子,像我这样的 晓人,加不加密都是等于没加密,照样给你脱库。。。 二:使用 ILSpy 去脱库 1....从DAL/Repository层去反编译代码 要想得到明文的数据库连接串,可以从代码中反推,比如从 DAL 或者 Repository 中找连接串字段 ConnectionString,我这边的终端程序是用...这些FCL的类你是没法混淆的,我从这些类上反推可以很轻松的就能找到明文的 ConnectionString ,所以这条路我觉得是走不通的。...从上图中可以看到,静态字段是在 Manager 类型对象 中,实例字段都是在 Manager 对象 中,对照这张图,我只需要通过 windbg 找到 OleDbHelper 类型对象,也就是所谓的 EEClass

    67020

    conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义

    ,jsonlib.c,只实现了一个功能从JSON字符串中解析name指定的字段内容,结果保存到输出缓冲区,JSON解析的工作实际上是调用cJSON来实现的。...profile 上一篇博客《conan入门(八):交叉编译自己的conan包项目》中我们是以如下指定来执行交叉编译的。...conanfile.py) 构建二进制包 –test-folder None 参数指定不执行测试命令 -pr:h android_21_arm_clang 指定目标设备的profile交叉编译配置文件...,如果配置文件不在Conan专门保存profile文件的文件夹$HOME/.conan/profiles下,需要准确指定路径 -pr:b default 指定使用名为default的profile文件作为当前主机的配置文件...-r ${repo} --all # ${repo}为私有制品库的名字 –all 指定上传所有内容(配置文件conanfile.py,源码和二进制包),如果不指定些选项,只上传除二进制包之外的所有文件

    1.4K30

    conan入门(三):上传预编译的库(artifact)

    所以以下情况我们可以考虑直接将本地已经编译好的二进制文件生成conan包: 当您无法从源代码构建包时(当只有预编译的库可用时)。...–bare -b 创建不需要编译的配置文件 conan new会在当前文件夹下生成conanfile.py,我修改了其中的description,url,license,author,topics改为有意义的值...1.7.15@cjson/1.7.15: Created package revision 86d7c021c2a785a1b8ea1fd00af1893c -pf --package-folder 指定要打包的文件夹...-f --force 强制上传,如果指定参数,会强制覆盖原来存在的包。...os,compiler,compiler.version,arch参数用于指定该包的交叉编译环境,如果未指定这些参数,则从$HOME/.conan/profiles/default读取默认值 这些字段不是随便填的

    3.1K20

    conan入门(二十六):使用make编译erpcerpcgen(makefile)

    ,meson,本文以NXP的Embedded RPC为例说明conan中如何使用make来构建项目。...目前只支持make构建,我的一个项目中用到了它,因为访问github比较慢,我fork了一份代码到国内码云仓库:https://gitee.com/l0km/erpc.git 以下的python脚本是为编译...文件夹添加到INCLUDE环境变量,否则会使用系统安装的flex的include os.environ['INCLUDES'] = self.deps_cpp_info["flex...在Windows编译时需要依赖MSYS2提供的bash shell环境,而msys2/cci.latest本身也提供了默认MinGW编译器,这有可能与你当前系统安装的编译版本不同,所以需要要通过环境变量...CC,CXX等强制指定使用你自己的MinGW编译器,你可以在执行conan create命令时使用-e 参数来定义CC,CXX环境变量,但用起来挺麻烦的,所以为了简化在Windows下的编译时需要在$HOME

    1.1K30

    conan入门(七):将自己的项目生成conan包

    conan 将自己的项目生成conan包 在之前的博客《conan入门(四):conan 引用第三方库示例》中我们以cJSON为例说明了如何在项目中引用一个conan 包。...,jsonlib.c,只实现了一个功能从JSON字符串中解析name指定的字段内容,结果保存到输出缓冲区,JSON解析的工作实际上是调用cJSON来实现的。...如果你看过我的上一篇博客《conan入门(六):conanfile.txt conanfile.py的区别》以及《conan入门(一):conan 及 JFrog Artifactory 安装》就差不多可以知道...但是要手写一个conanfile.py好像还挺麻烦的,我对python也是只知皮毛。 显然手写是不可能的,conan new 命令就是用于创建一个新的conan配置文件模板。...–all 指定上传所有内容(配置文件conanfile.py,源码和二进制包),如果不指定些选项,只上传除二进制包之外的所有文件 关于 conan upload命令的详细说明参见Conan官方文档:

    1.6K10

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

    conan Windows下Android NDK交叉编译Boost 上一篇博客《conan入门(九):NDK交叉编译自己的conan包项目塈profile的定义》中我们以jsonlib为例说明了如何NDK...包项目塈profile的定义》中的android_21_arm_clang略有不同: 并且[options]增加了addr2line_location定义,否则交叉编译boost的时候会报错: addr2line_location...profile交叉编译配置文件,如果配置文件不在Conan专门保存profile文件的文件夹$HOME/.conan/profiles下,需要准确指定路径 -pr:b default 指定使用名为default...的profile文件作为当前主机的配置文件[这个参数不是必须的] –build missing 如果依赖包中没有找到预编译的二进制包则从源码编译 conan install 命令行用法详细说明参见Conan...,而且会导致编译结束后报错,需要分析boost的conanfile.py脚本才能找到原因. conan install执行成功后,就会将生成的二进制包保存在本地仓库$HOME/.conan/data/boost

    1.8K20

    conan入门(二十):封装只包含头文件(header_only)的库示例

    conan: 封装只包含头文件(header_only)的库示例 有的C/C++项目只包含头文件,不需要编译,对于这种情况如何封装为Conan的包呢?...C++头文件形式为主,本文就以common_source_cpp为例说明如何实现conanfile.py将它封装为一个不需要编译只有头文件的Conan包。...has no build step conan create .根据配置文件 (同级文件夹下的conanfile.py) 构建二进制包 conan create 命令行用法参见Conan官方文档《...–all 指定上传所有内容(配置文件conanfile.py,源码和打包的文件–package),如果不指定些选项,只上传除package之外的所有文件 执行conan upload上传到私有制品库了...保持与远程端同步的最新代码,所以这里没有使用–all 指定上传所有内容(配置文件conanfile.py,源码和package),只上传了conanfile.py,引用该项目时执行conan install

    67250

    conan入门(八):交叉编译自己的conan包项目

    在使用conan来管理C/C++包(制品库)的环境下,如何实现对conan包封装的项目实现交叉编译的支持呢?因为我的工作涉及不少嵌入式平台的开发,conan对交叉编译的支持是我最关心的部分。...,jsonlib.c,只实现了一个功能从JSON字符串中解析name指定的字段内容,结果保存到输出缓冲区,JSON解析的工作实际上是调用cJSON来实现的。...conanfile.py) 构建二进制包 -s os=Linux -s arch=armv7 -s compiler=gcc -s compiler.version=4.8 指定交叉编译的目标平台编译器及版本...-pr:b default 指定使用名为default的profile文件 –build missing 如果依赖包中没有找到预编译的二进制包则从源码编译 –build 的可选值(可多个组合):...–all 指定上传所有内容(配置文件conanfile.py,源码和二进制包),如果不指定些选项,只上传除二进制包之外的所有文件 关于 conan upload命令的详细说明参见Conan官方文档

    2.2K40

    conan入门(五):conan 交叉编译引用第三方库示例

    通过完整的二进制包管理,它可以为任意数量的不同版本的包创建和重用任意数量的不同二进制文件(用于不同的配置,如架构、编译器版本等),在所有平台上使用完全相同的过程。...在使用conan来管理C/C++包(制品库)的环境下,如何实现对交叉编译的支持呢?因为我的工作涉及不少嵌入式平台的开发,conan对交叉编译的支持是我最关心的部分。...cjson 指定编译cjson库 –build 的可选值(可多个组合): ​ --build never 禁止编译依赖包,只下载预编译的二进制包,如果没找到预编译包则报错[不可与其他可选值组合]...​ --build missing 如果依赖包中没有找到预编译的二进制包则从源码编译 ​ --build outdated 如果依赖包中没有找到预编译的二进制包或过期(日期旧于源码)则从源码编译 ​...[pattern] 编译包名匹配[pattern]的之外所有包 本示例中--build json 是[pattern] 用法,所以--build json 也是一样的效果 --build=json也是有效的写法

    1.7K30

    cmake-conan 2.0 接入指南

    cmake-conan 新特性 如果你尚未使用过 Conan 与 CMake 的组合,请参考我历史编写的一篇关于 cmake-conan v1 版本的文章,该文章描述了 Conan + CMake 在跨平台项目中的实战应用场景...通过 CMake 初始化指定配置文件的方式来与 Conan 交互解决了以前我们业务 CMake 代码中包含了大部分对于 Conan 包处理的逻辑,以前的使用场景下如果脱离 Conan 业务的 CMake...但新版本中可能考虑到这个问题,首先你的脚本是可以独立的通过指定一些三方库的 prefix 来进行编译的,通过 Conan 关联编译只是一种渠道。...集成效果 我们在 GitHub 提交了一个简单的 Sample 用以演示集成的效果,可访问:https://github.com/nmgwddj/conan-cmake-v2-example 查看示例代码...,以下为各类主流 IDE 工具集成效果,使用指定工具打开文件夹即可直接编译使用,无需敲入复杂的导入三方库指令: Visual Studio Code 图片 Visual Studio IDE 图片 Qt

    1.7K10

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

    在定义AR,AS,RANLIB,LD,STRIP环境变量时并没有使用$target_host-XX的格式,因为对armv7的ar,as,ranlib,ld,strip程序的文件名定义规则与armv8不同...profile交叉编译配置文件,如果配置文件不在Conan专门保存profile文件的文件夹$HOME/.conan/profiles下,需要准确指定路径 -pr:b default 指定使用名为default...的profile文件作为当前主机的配置文件[这个参数不是必须的] –build missing 如果依赖包中没有找到预编译的二进制包则从源码编译 conan install 命令行用法详细说明参见Conan...,而且会导致编译结束后报错,需要分析boost的conanfile.py脚本才能找到原因. conan install执行成功后,就会将生成的二进制包保存在本地仓库$HOME/.conan/data/boost...–all 指定上传所有内容(配置文件conanfile.py,源码和二进制包),如果不指定些选项,只上传除二进制包之外的所有文件 关于 conan upload命令的详细说明参见Conan官方文档

    3K30

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

    cmake_exe生成的构建exe程序的conan包定义脚本(参见我的上一篇博客《conan new 命令的新特性–模板功能(–template)》). conanfile.py from conans...(如cjson conanfile.py)中都是这么用的啊?...如果不指定--template参数使用 create new pkgname/version生成的conanfile.py是引用的是conans.CMake 如果指定--template参数使用 create...new pkgname/version生成的conanfile.py是引用的是conan.tools.cmake.CMake 解决方案一 改回传统的引用conans.CMake,这需要较多修改conanfile.py...conan.tools.cmake这个实验包应该会在conan 2.0变为正式的,如果你和我一样也是刚conan入门,建议使用解决方案一,以避免今后使用中遇到其他与官方参考不一致的问题。

    2.3K20
    领券