1

在 Visual Studio 2012 C++ 项目属性页中,宏对话框

我们可以找到不同的宏扩展语法,

$(TargetPath)
%(OutputFile)
@(_TargetFramework20DirectoryItem)

有什么不同?


顺便说一句,我们可以在 Visual Studio 2012 中轻松定义自己的新宏吗?除了创建一个新的项目属性表。

我只是想要一个简单的新宏,如果是这样,我所有的依赖都可以基于这个宏来计算。

例如:

$(DependsBaseDir) = $(ProjectDir)..\..\..\
$(IncludePath) = $(DependsBaseDir)include;$(DependsBaseDir)abc\inc;$(DependsBaseDir)xyz\pub_inc
$(LibraryPath) = $(DependsBaseDir)lib

使用项目属性,我无法归档我的目的。由于$(DependsBaseDir)取决于$(ProjectDir). 我必须使用环境变量,这是一个非常非常糟糕的决定,并且很难在机器之间移动项目。或者我必须$(DependsBaseDir)到处重复价值。如果$(DependsBaseDir)改变了,它确实会改变,修复依赖是一场灾难。我必须计算正确的点,然后到处替换它……这个简单的例子已经够难了。不要说$(SolutionDir),项目在不同的解决方案中共享。

4

1 回答 1

3

$ 扩展属性, % 扩展项目定义。查看 vcxproj 的文本,您可以看到不同之处。

您可以在项目文件中定义自己的属性,建议的位置在“UserMacros”下。Yuo可以定义你的东西

$(ProjectDir)......\ 在那里,稍后将它与 $(DependsBaseDir) 一起使用。AAMOF 你甚至可以使用适用于 C# 字符串的表达式。

如果您不想编辑项目本身,可以将其放在单独的 .props 文件中,然后手动导入或使用属性管理器导入。

于 2013-05-29T00:39:36.447 回答