неопределенная ссылка на boost::system::generic_category() — Настройка Ogre с Eclipse CDT в Windows

Итак, я следовал этому руководству.

Я настроил все, как сказано (все дважды проверил), единственное, что я изменил, это (шаг 10), от

${OGRE_HOME}\boost_1_44

to

${OGRE_HOME}\boost

так как в моей версии Ogre SDK (1.81) нет папки boost

${OGRE_HOME}\boost_1_44
44, только папка boost.

Во всяком случае, как я уже сказал, когда я пытаюсь скомпилировать свою программу, я получаю три ошибки:

undefined reference to boost::system::generic_category() 
undefined reference to boost::system::generic_category() 
undefined reference to boost::system::system_category() 

Я попытался добавить это: -lboost_system в мой проект. Я перешел в «Свойства»> «Сборка C/C++»> «Настройки»> «Компилятор GCC C++»> «Разное» и добавил его к существующим флагам, но не повезло.

Я гуглил, и, видимо, это единственное возможное решение. Итак, я прошу вас, если бы кто-нибудь мог объяснить мне (как можно проще, пожалуйста, шаг за шагом), как исправить эти ошибки компилятора.

РЕДАКТИРОВАТЬ: я использую MinGW в качестве компилятора (я использую его с MSYS).


person TheGhost    schedule 22.07.2013    source источник
comment
У вас есть libboost_system.a на пути компоновщика?   -  person Igor R.    schedule 23.07.2013
comment
Я добавил его в Свойства › C/C++ Build › Settings › MinGW C++ Linker › Libraries › Libraries (-l); но я получаю сообщение об ошибке: не могу найти -libboost_system.a.   -  person TheGhost    schedule 23.07.2013
comment
Опять же, у вас есть libboost_system.a на пути компоновщика? Вы видите такой файл? Существует ли файл с именем libboost_system.a там, где он должен быть?   -  person Igor R.    schedule 23.07.2013
comment
Я не вижу этого, но опять же, я совершенно новичок в Eclipse IDE, поэтому, возможно, я ищу не в том месте...   -  person TheGhost    schedule 23.07.2013
comment
Это не связано с Eclipse. Если вы не собрали Boost, статической библиотеки Boost.System не существует. Сначала вы должны собрать boost (см. Руководство по началу работы: boost.org /doc/libs/1_54_0/more/getting_started/windows.html).   -  person Igor R.    schedule 23.07.2013
comment
Я скачал OGRE SDK, в котором уже есть готовый Boost. Я скачал это: sourceforge. сеть/проекты/огры/файлы/огры/1.8/1.8.1/. Вы можете скачать его и посмотреть сами, но все уже построено.   -  person TheGhost    schedule 23.07.2013
comment
Перейдите к OgreSDK_MinGW_v1-8-1\boost\lib и посмотрите правильные имена библиотек.   -  person Igor R.    schedule 23.07.2013
comment
У меня есть libboost_system-mgw47-mt-d-1_51.a и libboost_system-mgw47-mt-d-1_51.a. Что тогда добавить в Свойства > C/C++ Build > Settings > MinGW C++ Linker > Libraries > Libraries (-l)?   -  person TheGhost    schedule 23.07.2013
comment
ОБНОВЛЕНИЕ: я попытался добавить boost_system в свои свойства > C/C++ Build > Settings > MinGW C++ Linker > Libraries > Libraries (-l), но безуспешно. Я также попытался добавить boost_system-mgw47-mt-d-1_51.a и libboost_system-mgw47-mt-d-1_51.a (не одновременно, конечно) в моем Debug (Active) в том же месте (Properties › C/C++ Build › Settings › MinGW C++ Linker › Libraries › Libraries (-l)), но опять не повезло.   -  person TheGhost    schedule 23.07.2013
comment
Первая — это импортная библиотека, вторая — статическая библиотека. Судя по их названиям, это Boost 1.51, поэтому следует включать заголовки из той же версии.   -  person Igor R.    schedule 23.07.2013
comment
давайте продолжим это обсуждение в чате   -  person TheGhost    schedule 23.07.2013
comment
Боюсь, я не могу быть полезен в отношении вашей конкретной проблемы (настройки Eclipse). Я просто хотел выделить моменты, связанные с наддувом.   -  person Igor R.    schedule 23.07.2013
comment
Хорошо, просто надеюсь, что кто-нибудь скажет мне, что делать в Eclipse... В любом случае спасибо. :)   -  person TheGhost    schedule 23.07.2013


Ответы (1)


У меня были похожие проблемы при компиляции в Linux с использованием CMake и clang. Я исправил это, добавив флаг

-DBOOST_SYSTEM_NO_DEPRECATED

Это «комментирует» строки, вызывающие проблему. Я не знаю, исправит ли это ваши ошибки, но исправит мои.

(Если вы используете ./configure, также добавьте CPPFLAGS='-DBOOST_SYSTEM_NO_DEPRECATED' в качестве параметра).

person David    schedule 17.09.2013
comment
Спасибо за решение. Я трачу более 1 часа на поиск причины ошибки при компиляции POV-Ray - person Sergei Lodyagin; 26.01.2014