我一直在学习柯南的一个个人项目,我有一个问题,我一直无法回答从看文件和例子。
柯南的“个人资料”和CMake之间似乎有一个尴尬的互动缺失,我的意思是:有许多不同的构建参数必须手动保持同步-使用与在conan install
期间选择的参数不同的参数运行CMake将导致构建错误。
为了给予一个更具体的例子,这里有我的两个配置,以及我将如何使用它们来构建:
第一个
在第一个例子中,我必须重复gcc
和Debug
。
在第二个示例中,我必须重复Visual Studio
、16
、ClangCL
和Release
。
不得不重复这么多次让人感觉很不舒服,尤其是当这些选项分散在多个长时间运行的命令中时,忘记一个选项可能会导致不明显的错误消息。它已经知道它需要什么值,如果它们不匹配,它就会崩溃。
处理此问题的建议方法是什么?
4条答案
按热度按时间l7mqbcuq1#
通常你会使用Conan来设置你所有的外部库,然后从CMake中使用它们。但是你也可以用相反的方法:让CMake调用Conan来安装外部依赖项。
How to launch conan install from cmake中的示例代码:
9rnv2umw2#
请参阅建议的柯南用法:https://github.com/conan-io/cmake-conan
waxmsbnn3#
编辑:这是柯南v1.X!
让Conan在它的构建函数中处理所有血淋淋的细节:
conanfile.py
CMakeLists.txt
终点站:
另外,您不必每次都手动导出GCC,将其放在配置文件的
[env]
部分下:您可以使用相同的方式指定预设产生器:
gwo2fgha4#
我刚开始研究
conan build
,它看起来很有前途。我一开始跳过它是因为它看起来只适用于发布Conan软件包的人,但现在我认为它也适用于消费者。事实上,这个页面甚至明确提到了我的问题陈述:此
conan build
将使用conan install
中使用的设置,这些设置已缓存在本地conaninfo.txt
和您的build文件夹中的文件中。这简化了过程并减少了已安装包与当前项目配置之间的不匹配错误。[...]实现和使用conanfile.pybuild()
方法可确保我们始终使用相同的设置无论是在需求的安装还是项目的构建过程中,都是如此,并且简化了对构建系统的调用。