|
|
1
5
我相信你可能想做的是用VS创建一个项目属性表 Project Manager 所有的项目都可以继承。这将允许您在单个位置设置任何公共项目设置,包括预处理器宏,并根据需要继承它们。 |
|
2
4
选择解决方案中的所有项目。项目+属性,C/C++,预处理器,预处理器定义。添加
现在可以在源代码中测试解决方案宏值。 |
|
|
3
4
我终于找到了适合我的东西 在我的“C:\Users\\AppData\Local\Microsoft\MSBuild\v4.0”中 我把它改了一点:
所以现在,如果在“mysolution.sln”旁边有一个“mysolution.props”,那么我就得到了整个解决方案的属性表,而不需要更改项目内部的任何内容。它成为我的视觉环境的一个新特性 |
|
|
4
1
2008年的sln真的很蠢,它们只有要放入解决方案资源管理器的项目/文件列表和项目依赖项,所以我认为这不是一个选项。 我的直觉是用相对路径做一些事情。例如,在stdafx中。h可以#包括“…\project_configuration.h”,然后为了构建sln a,您可以向一个目录和另一个目录检查内容。每个项目都有各自的项目配置。H 我相信你可以用vsprops文件做一些类似的事情,它们基本上是vcproj文件的#includes,尽管我发现随着时间的推移,它们的维护有点烦人。 |
|
|
5
1
另一种方法: 用这样的东西编辑你的vcxproj(或你的vcxproj.user)
它并不完美,因为它取决于你的sln文件名。 如果我们改用$(SolutionConfiguration)变量就好了。 不幸的是,我只看到项目配置的变量:$(配置)。 不管怎么说,它确实起到了作用。。。 |
|
|
6
0
我也看过 Define a preprocessor value from command line using MSBuild 和 msbuild, defining Conditional Compilation Symbols 这些可能也会起作用,但是我们的构建系统现在非常脆弱,我无法完全改变它。 我提出的解决方案是在一个解决方案中克隆项目的构建配置,并给它一个不同的名称。然后我在新配置中添加了宏/预处理器定义。 它似乎按预期工作。因此,一个解决方案使用旧的“release”配置,另一个解决方案使用具有不同预处理器def的克隆“releasesspecial”(不是我真正使用的名称)配置。 虽然不理想,但它确实有效。 如果propoerties更容易处理,或者SLN文件可以传入预处理器def,那就太好了。 |
|
TSG · 创建定义编译器变量并调用方法的C++宏 1 年前 |
|
Edward Falk · 你能比较C预处理器中的两个常量指针吗? 1 年前 |
|
|
ma1169 · 宏:不应忽略void值 1 年前 |
|
|
Bhargav Patil · 运算符的大小并尝试打印数组 1 年前 |
|
|
David Robie · VIM:寄存器中填充字符断点宏的有向图 1 年前 |
|
|
Sofia Zaiafarova · 定义宏并使用数据类型查找绝对值 1 年前 |
|
|
Daniel Muñoz · C[重复]中类宏函数的语法 2 年前 |
|
|
SupAl · 避免在没有宏的情况下构建对象 2 年前 |