首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Visual项目中,可以跨多个配置/平台设置用户宏吗?

在Visual项目中,可以跨多个配置/平台设置用户宏吗?
EN

Stack Overflow用户
提问于 2014-09-12 14:27:33
回答 1查看 8.1K关注 0票数 18

我最近在Visual中使用了encountered Property Sheets,它提供了一种为项目定义用户定义$(MACRO)的方法。它们不是what I really want,但是我在VS中找到的最接近的。

但是,在属性管理器(查看->其他->属性管理器)下,似乎不可能让配置编辑器的用户宏部分显示出来,除非您编辑特定的配置/平台组合,比如Debug | Win32

如果您有相当多的配置,并且希望(比方说)为同一平台上的所有配置设置一个宏的相同值,这会变得非常麻烦。

在正常编辑项目属性时,您可以选择“所有配置”和/或“所有平台”,以便将更改复制到子部分。在编辑属性表时,这是不可用的。

有任何方法可以同时为多个配置/平台在属性表中设置值吗?例如,考虑到要将宏POSTGRES_INSTALL设置为用于x64目标的%PROGRAMFILES%\PostgreSQL\9.3和针对x86目标的%PROGRAMFILES(x86)%\PostgreSQL\9.3,是否可以同时为多个目标(调试、发布、SomeCustomTarget)设置宏x64?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-16 05:23:49

财产表是如何工作的

属性表是属性的简单列表。条目不是每个配置或每个平台。

如果将属性表添加到项目的顶层,则将其添加到下面的所有配置/平台组合中,就好像您自己将属性表文件单独添加到每个配置中一样。

因此,所有属性在所有配置/平台变体中都是可见的。

这意味着您还可以为所有x86配置创建一个工作表,为所有x64配置设置一个不同的工作表,例如,对于构建路径。这样,代码中的所有其他属性都可以使用$(MYLIB_INCLUDE),而不必担心它是32位构建还是64位构建。

您也可以将每个配置/平台和全局属性表有效地结合起来,属性表也可以在列表的后面引用一个。(顺序很重要,它们似乎是根据UI从下到上读取的)。

您可以通过在主项目属性页中编辑属性并打开"Macros>“选项卡来检查属性的最终值。这在调试从不同工作表引用另一个用户宏的排序问题时非常有用。

使用示例,使用代码

例如,您可以使用 on github here,我创建了三个属性表:

我将pg_sysdatetime.props添加到项目的顶层,因此将其应用于所有配置/平台组合。

然后,我将sysdatetime_x86.props添加到所有x86平台配置中,将sysdatetime_x64.props添加到所有x64平台配置中。

属性编辑器如下所示:

在编辑属性时,我可以看到正确定义的宏:

现在,我可以在项目中的任何地方使用简单的宏引用PostgreSQL libdir、include目录等,例如:

代码语言:javascript
复制
 $(PGBASEDIR)\lib

不关心我是在做32位还是64位的构建等等,所以我只需要编辑“所有配置”、“所有平台”的设置,并且知道它们将适用于所有的东西,我不需要单独编辑每个配置。

这几乎就像使用1980年的Makefile ;-)

票数 17
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25810603

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档