gpt4 book ai didi

c++ - 避免 Visual Studio 项目的过多配置

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:37:36 26 4
gpt4 key购买 nike

我目前正在将一个大型 Linux 项目移植到 Visual Studio。该项目依赖于许多第三方库(Python、MPI 等)以及一些内部库。但它也可以在没有这些库的情况下构建,或者只使用其中的几个。所以我不想为每种可能的组合创建不同的配置,例如“Parallel with Python”,“Parallel with Python”等等,组合太多了。在这种情况下我可以使用 MSBuild 吗?

编辑:我考虑过的一种可能性是创建一堆 .vsprops 文件,但这在本质上与创建一堆不同的配置相同。

编辑:也许 CMake 更适合我?我很想听听任何 CMake 用户的意见...

最佳答案

一种方法是使用 Condition 有条件地引用您的库 每个程序集 Reference 元素(Python、MPI 等)的属性。

这可以将您的库与配置和平台属性分开,并允许您默认构建它们,或有条件地使用 MSBuild 属性构建它们。

所以在你的 csproj 中:

<Reference Include="YourPythonLibrary" 
Condition="$(BuildType) == '' Or $(BuildType) == 'TypeA'" />
<Reference Include="YourMpiLibrary"
Condition="$(BuildType) == 'TypeA' Or $(BuildType) == 'TypeB'" />

默认情况下包括 Python,仅当设置了正确的构建类型时才包括 MPI。配置或平台设置成什么并不重要,您可以调整 bool 逻辑以适应每个构建类型的每个库。

MSBuild /p:BuildType=TypeA
MSBuild /p:BuildType=TypeB

在条件上使用某种形式的按位运算会很好,但我不确定这在 MSBuild 中是否可行?

注意:不需要引用元素,如果它只是作为内容包含在内,这种方法仍然有效。

关于c++ - 避免 Visual Studio 项目的过多配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/675259/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com