Я бы хотел посмотреть, не могли бы вы сориентироваться.
Бывает, что я скомпилировал и использовал ссылки на библиотеки наддува, чтобы использовать их с 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