首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Visual Studio 11中用于生成命令和属性的宏

Visual Studio 11中用于生成命令和属性的宏
EN

Stack Overflow用户
提问于 2011-09-30 15:21:43
回答 2查看 3.3K关注 0票数 5

问题分为三部分:

  1. 在Visual 11中,构建时宏是否完全充实了?
  2. 我如何在IDE中编辑和定义它们?
  3. 如何让宏在调试会话中仍然有其意义?

请注意,我指的是构建时宏,例如$(ProjectDir),而不是用来记录一系列按键的IDE宏--它们是把那些拿走了,但是没有它们,我可以生存。我一直在通过Visual 10中的属性页定义自己的构建时宏。例如,我可能会创建一个宏来定义Boost在我的本地计算机$(BoostDir) in x64 builds上通过View>Property 安装的位置。

我使用此功能是因为我可能(例如)在不同计算机上的不同位置安装了Boost。这些属性是特定于机器的,没有签入到源代码管理。然后,我可以在签入到源代码管理的项目设置中使用这些宏,只要我已经为该机器定义了宏,它就应该在编译该项目的每台机器上工作。

在试图在VisualStudio11DeveloperPreview中编译和运行我的VS10项目时,我将讨论与这些宏有关的几个问题。

首先,在VS11中似乎没有一个接口来定义这些用户定义的宏.在VS10中,现在VS11中什么也没有:

看起来这些宏确实存在于Compiler/IDE中的某个级别,因为我能够编译我的项目而没有错误,如果这些宏不在某个地方,我就无法编译。

第二,虽然宏在构建过程中似乎存在,但在调试会话中它们似乎不存在。我以前用于解析VS10中某些DLL的目录的宏现在不解析VS11中的那些目录,我得到了运行时错误:

DLL所在的目录在VS10和VS11中定义:

在调试会话期间,...but我的宏似乎没有任何意义。

如何才能在VS10中获得VS11中所依赖的所有宏相关功能?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-05-20 18:34:02

如果您还没有弄清楚如何做到这一点,则需要使用您自己的属性表。

创建一个新的属性表,并在“公共属性”>“用户宏”中使用该部分。

例如,我在一个名为BOOST_VER的属性表中有一个名为IncludeBoost.props的宏,我在其中设置了所有内容。

代码语言:javascript
复制
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+click多重选择。

HTH。

票数 1
EN

Stack Overflow用户

发布于 2012-03-01 17:23:45

我的Microsoft.Cpp.x64.user.props (我认为是您编辑的)位于我的%blah%\AppData\Local\Microsoft\MSBuild\v4.0中。我的猜测是,VS11不使用这个来进行构建设置。您真正应该做的是创建您自己的财产表以用于您的项目。

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

https://stackoverflow.com/questions/7612584

复制
相关文章

相似问题

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