在 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)
,项目在不同的解决方案中共享。