宏为构建命令和属性在Visual Studio 11
三部分的问题第一:宏为构建命令和属性在Visual Studio 11
- 是在Visual Studio 11完全充实构建时宏?
- 如何编辑&在IDE中定义它们?
- 在调试会话期间,我如何让宏仍然有其含义?
请注意,我指的是build-time macros如$(ProjectDir)
,不用于记录一系列按键的IDE宏 - 他们took those away,但我生活中可以没有他们。例如,我可能会创建一个宏来定义在我的本地计算机上安装Boost的位置,其名称为$(BoostDir)
,位于x64版本中,通过查看>属性管理器> Microsoft.Cpp.x64.user:
我用这个功能,因为我有可能(例如)安装在不同的计算机上不同位置的推动作用。这些属性是特定于计算机的,并未检入到源代码管理。然后,我可以在项目设置中使用这些宏来检查源代码控制,只要我为该机器定义了宏,就可以在我编译此项目的每台机器上运行。
在试图编译&运行我VS10项目在Visual Studio 11开发者预览版,我一对夫妇的问题,对于这些宏运行英寸
首先,在VS11中似乎没有界面来定义这些用户定义的宏。将它们在VS10,现在只是没有在VS11:
看来,做在一定程度上的编译器/ IDE中存在这些宏,因为我能够编译我的项目没有错误,如果这些宏不存在的话,我将无法做到这一点。
其次,虽然宏在构建过程中似乎存在,但它们在调试会话期间似乎不存在。宏我用来解决某些地方在DLL中存在VS10现在不解决VS11这些目录的目录,我得到运行时错误:
,其中该DLL位于这里定义的目录在VS10和VS11:
...但我的宏似乎并不意味着在调试会话期间任何事情。
如何获得我在VS10中依赖于VS11的所有宏相关功能?
如果您还没有想出如何做到这一点,您需要使用自己的属性表。
制作一个新的属性表,并使用通用属性>用户宏中的部分。
例如,我有一个名为BOOST_VER宏属性表称为IncludeBoost.props我设置的一切。
User Macros
Name Value
BOOST_VER 1.49.0
C/C++ > General > Additional Include Directories >
"$(environment variable)\3rdParty\Boost_$(BOOST_VER)\Boost";%(AdditionalIncludeDirectories)
C/C++ > Preprocessor > Preprocessor Definitions >
BOOST_ALL_DYN_LINK;%(PreprocessorDefinitions)
Linker > General
$(env var)\3rdParty\Boost_$(BOOST_VER)\Boost\lib\$(Platform);%(AdditionalLibraryDirectories)
注意适当的平台挑选过的(Win32或x64)。
顺便说一句,物业经理支持Ctrl +单击多个选择。
HTH。
我的Microsoft.Cpp.x64.user.props,我认为是你编辑的,位于%blah%\ AppData \ Local \ Microsoft \ MSBuild \ v4.0中。我的猜测是,VS11不使用这个版本设置。你真正应该做的是创建自己的property sheet用于你的项目。