C++: как включить заголовок библиотеки boost в VC++6?

Я использовал это руководство, чтобы перестроить библиотеку boost в VС++6 под Windows XP. Но возникают проблемы с попыткой включить заголовочные файлы. По умолчанию библиотека boost использует пункт 1 следующим образом для объявления файлов заголовков. Но если я использовал пункт 1, я получаю «фатальную ошибку C1083: невозможно открыть включаемый файл ...». Я попытался использовать пункт 2 для объявления, и, похоже, он работает, но все файлы заголовков, на которые ссылается пункт 2, должны быть изменены. Это приводит к каскадному изменению объявления заголовка, что нереально.

Я что-то пропустил? Как правильно включить заголовочный файл без ошибок?

1) #include <boost/interprocess/managed_shared_memory.hpp>  
2) #include "..\boost\interprocess\managed_shared_memory.hpp"

person Community    schedule 06.12.2009    source источник


Ответы (2)


Вы добавили путь включения в свой проект?

Если вы попытаетесь скомпилировать свою программу из Visual Studio, вы можете добавить дополнительные пути включения в глобальные параметры (меню: Инструменты -> Параметры -> Каталоги -> Показать каталоги для: Включить файлы). Если вы также будете использовать скомпилированные библиотеки boost (например, для boost::filesystem), вы также должны добавить путь к библиотеке в свои настройки.

person Community    schedule 06.12.2009
comment
Я добавил путь включения, но теперь получаю ошибку C:\Program Files\Boost\include\boost-1_41\boost/interprocess/interprocess_fwd.hpp(186): ошибка C2954: определения шаблонов не могут быть вложены друг в друга. Означает ли это, что библиотека Boost версии 1.41 не может использоваться в VC++6? - person Lopper; 06.12.2009
comment
Ну, это другая проблема. Возможно, вы можете попробовать следовать этому руководству, чтобы начать с чего-то простого, что должно работать: boost.org/doc/libs/1_41_0/more/getting_started/windows.html Там также есть еще несколько советов по настройке VS, например. разделы 4.1 и 6.1. - person catchmeifyoutry; 06.12.2009
comment
Я полагаю, что последняя версия Boost, которая поддерживала MSVC6 в качестве цели сборки, была 1.34. MSVC6 не является компилятором C++, соответствующим стандартам. - person Joe; 06.12.2009
comment
Обратите внимание, что Boost поддерживает список протестированных компиляторов для каждого выпуска, а поддержка VC6 была прекращена несколько выпусков назад. Также обратите внимание, что в разделе «Протестированные компиляторы» документов библиотеки Interprocess не указан VC6. - person Bojan Resnik; 06.12.2009
comment
@Joe & @Bojan: Это подтвердило мои подозрения. Спасибо! - person Lopper; 06.12.2009

Без обид, но разве VC++6 не поддерживает дополнительные включаемые каталоги?

Прошло много времени с тех пор, как я использовал VC 6, но я знаю, что должен быть способ сказать

Посмотрите в .. дополнительные включаемые файлы.

Проверьте свойства вашего проекта в разделе C/C++ (при условии, что система меню несколько похожа на более новые версии)

Установите для дополнительных каталогов включения значение ..

person Community    schedule 06.12.2009