2010-06-07 156 views
5

我想看看您是否可以定位我。在Visual Studio 2010中增强IntelliSense错误

碰巧我编译和为了与Visual Studio 2010中使用它们引用的Boost库在构建我的测试项目中,我得到这两个智能感知错误

1 IntelliSense: #error directive: "Macro BOOST_LIB_NAME not set (internal error)" c:\boost_1_43_0\boost\config\auto_link.hpp 

2 IntelliSense: #error directive: "some required macros where not defined (internal logic error)." c:\boost_1_43_0\boost\config\auto_link.hpp 

检查auto_link.hpp头文件第一误差是在这条线

#ifndef BOOST_LIB_NAME 
# error "Macro BOOST_LIB_NAME not set (internal error)" 
#endif 

跟踪的BOOST_LIB_NAME定义,似乎在config.hpp由boost_regex,我包括以下

哪个代码定义
#if !defined(BOOST_REGEX_NO_LIB) && !defined(BOOST_REGEX_SOURCE) && !defined(BOOST_ALL_NO_LIB) && defined(__cplusplus) 
# define BOOST_LIB_NAME boost_regex 
# if defined(BOOST_REGEX_DYN_LINK) || defined(BOOST_ALL_DYN_LINK) 
#  define BOOST_DYN_LINK 
... more code 

奇怪的是当我指向BOOST_LIB_NAME它定义了BOOST_LIB_NAME并且IntelliSense错误消失。

我的程序使用Boost:Regex库进行构建和执行,包含或不包含Intellisense错误;然而,我不明白为什么这些智能感知错误首先出现,第二,为什么将宏指向config.hpp定义为BOOST_LIB_NAME

任何指导将不胜感激。

感谢,

海梅

回答

5

对于C Visual Studio的智能感知错误检查++是不完美的,经常报告的错误,aren'treallyerrors(这些都是链接到我发现和报告了三个误报;尽管他们与你的问题没有关系)。