Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
visualc&x2B+;项目属性@$%宏 在VisualStudio 2012 C++项目属性页,宏对话框_C++_Visual Studio_Visual C++ - Fatal编程技术网

visualc&x2B+;项目属性@$%宏 在VisualStudio 2012 C++项目属性页,宏对话框

visualc&x2B+;项目属性@$%宏 在VisualStudio 2012 C++项目属性页,宏对话框,c++,visual-studio,visual-c++,C++,Visual Studio,Visual C++,我们可以找到不同的宏扩展语法 $(TargetPath) %(OutputFile) @(_TargetFramework20DirectoryItem) 有什么不同 顺便说一句,我们可以在VisualStudio2012中轻松定义自己的新宏吗?在“创建新项目属性表”旁边 我只想要一个简单的新宏,如果是这样的话,我所有的依赖都可以根据这个宏来计算 例如: $(DependsBaseDir) = $(ProjectDir)..\..\..\ $(IncludePath) = $(Depends

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

$(TargetPath)
%(OutputFile)
@(_TargetFramework20DirectoryItem)
有什么不同


顺便说一句,我们可以在VisualStudio2012中轻松定义自己的新宏吗?在“创建新项目属性表”旁边

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

例如:

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

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

$扩展属性,扩展项定义。看一看vcxproj的文本,您可以看到其中的区别

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

$(项目目录)\ 然后将其与$(DependsBaseDir)一起使用。AAMOF您甚至可以使用适用于C#string的表达式


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

就这样。我比较了vs2010和vs2012。“用户宏”是vs2012中的新功能。将尝试。vs2012中的项目设置中没有“用户宏”。它仍然在.props文件中。