我的项目有很多#ifdefs
。这些#ifdef
使用的宏通常使用'/D'
选项通过命令行传递,以获得不同的构建配置。 Visual Studio错误地假设未定义这些宏并使这些#ifdef
内的代码块变灰。问题不在于语法高亮 - 我可以将灰色代码变为选项中的彩色代码;主要问题是我无法转到#ifdef
内存在的任何函数的函数定义。我尝试阅读Visual Studio hint files,但这对我不起作用。
任何人都可以帮我解决这个问题吗?我正在使用Visual Studio 2008。
答案 0 :(得分:2)
您是否在VS中定义了几种类型的构建,如Debug,Release,或者您正在使用makefile构建?如果你没有教过VS你的/ D选项,那么我想它无法帮到你。但您应该能够在项目属性(配置属性,C / C ++,预处理器)下设置预处理器定义以获得所需的效果,对吗?
对于传递给编译器的每个选项/DMACRO=XXX
,请在IntelliSense预处理器定义中指定MACRO=XXX
。对于传递给编译器的每个选项/DMACRO
(无值),请在IntelliSense预处理器定义中指定MACRO
。
答案 1 :(得分:0)
如果你没有调试,并且你只是试图获得intellisense或其他任何反应,你总是可以快速调出#define
来强制IDE运行。
似乎你和这个家伙有类似的问题:
Can intellisense be enabled in VS2008 within preprocessor directive blocks like #ifndef ... #endif