Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/117.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用Conan打包时如何避免两次列出依赖项?_C++_Dependency Management_Conan - Fatal编程技术网

C++ 使用Conan打包时如何避免两次列出依赖项?

C++ 使用Conan打包时如何避免两次列出依赖项?,c++,dependency-management,conan,C++,Dependency Management,Conan,我目前正在尝试将一个项目打包为柯南软件包。该项目已经在管理其与柯南本身的依赖关系,因此有一个conanfile.txt,其中列出了其依赖关系。我在回购交易中这样做 现在我想对这个项目进行打包,但我不知道如何简单地将conanfile.txt作为项目依赖项的参考,以及是否可以利用它已经存在的事实,而不是在conanfile.py中重新列出所有依赖项。我可以通过删除conanfile.txt和跳过它,但这会迫使我在配方中对实际的build()步骤进行更复杂的处理,这是我想要避免的。我还想让开发库的人

我目前正在尝试将一个项目打包为柯南软件包。该项目已经在管理其与柯南本身的依赖关系,因此有一个
conanfile.txt
,其中列出了其依赖关系。我在回购交易中这样做

现在我想对这个项目进行打包,但我不知道如何简单地将
conanfile.txt
作为项目依赖项的参考,以及是否可以利用它已经存在的事实,而不是在
conanfile.py
中重新列出所有依赖项。我可以通过删除
conanfile.txt
和跳过它,但这会迫使我在配方中对实际的
build()
步骤进行更复杂的处理,这是我想要避免的。我还想让开发库的人能够按照他们喜欢的方式来构建它,除了依赖关系管理之外,不一定通过柯南

有没有办法从Conan配方中获取项目依赖项,而不是在Conan配方的
conanfile.txt
requires
变量中列出两次依赖项?如果可能的话,我希望避免读取
conanfile.txt
并手动将依赖项逐行输入
requires
变量


我知道我可能正在寻找一种不适合柯南设计和/或包装一般工作方式的方法。

您可以使用
conanfile.txt
,但我强烈建议改用
conanfile.py
。 您还可以运行
conan install.
,并安装
conanfile.py
中列出的所有依赖项。由于命令
install
不会运行
build()
部分,因此我看不出问题所在

无论如何,您可以在
conanfile.py
中创建一个基类,加载
conanfile.txt
内容并过滤需求。显然,这听起来比只使用
conanfile.py
要复杂得多


就功能而言,柯南不可能同时加载这两个文件。默认情况下,它将
conanfile.py
并忽略
conanfile.txt
。您不能同时使用参数或变量进行强制。

您没有说其他,但为了清楚起见,您可以使用.txt或.py显式(
conan install../conanfile.txt
),当两者都存在时。如果您使用cmake构建项目,您可以在
conanfile.py
中列出所有依赖项。使用cmake构建项目时,只需要依赖项,并跳过
build()
步骤。正如您将
conanfile.txt
传递给您的cmake一样。这种方法可以避免将依赖项列出两次。。。