Повышение в Visual Studio 2010, ошибка IntelliSense - PullRequest
5 голосов
/ 07 июня 2010

Я бы хотел посмотреть, не могли бы вы сориентироваться.

Бывает, что я скомпилировал и использовал ссылки на библиотеки наддува, чтобы использовать их с Visual Studio 2010. При создании моего тестового проекта я получаю эти две ошибки IntelliSense

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 или без них; однако я не понимаю, почему эти ошибки IntelliSense появляются в первую очередь, а во-вторых, почему указание макроса в config.hpp определяет BOOST_LIB_NAME.

Любое руководство будет с благодарностью.

Спасибо

Jaime

1 Ответ

5 голосов
/ 07 июня 2010

Проверка ошибок Visual Studio IntelliSense для C ++ не идеальна и часто сообщает об ошибках, которые не действительно ошибок (это ссылки на три ложных срабатывания что я нашел и сообщил, но они не связаны с вашей проблемой).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...