Ошибка OGRE LNK2001: неразрешенный внешний символ
Я пытаюсь получить пример OGRE для компиляции в VS 2013, но я продолжаю получать ту же ошибку, независимо от того, что я делаю:
error LNK2001: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)"
OGRE SDK поставляется с буст-библиотекой. К сожалению, он не совместим с VS2013, поэтому я скачал последнюю версию, скомпилированную с использованием VS2013. Вы можете найти это здесь
"Дополнительные каталоги включения" и "дополнительные каталоги библиотеки" настроены правильно.
1 ответ
Состояние ошибки, что вы используете символ, который объявлен, но не реализован, boost::system::error_category
это метод boost, который различные библиотеки используют при управлении ошибками, он принадлежит системной библиотеке, реализация этого метода находится в [BOOST_ROOT] \ boost \ libs \ system \ src \ error_code.cpp.
Наиболее вероятной причиной является то, что вы включаете библиотеку OGRE или часть библиотеки, в которую входят некоторые библиотеки boost, использующие этот метод.
Многие библиотеки из boost являются только заголовочными, но этой конкретной библиотечной системы нет, она требует компиляции этого .cpp: два возможных исправления компилируют .LIB или.DLL из boost (подробнее см. Раздел Подготовка к использованию двоичного двоичного файла библиотеки Boost). информация об этом) и использование этого в вашем проекте (может быть лучше, если вы будете использовать много библиотек из boost, которые не являются только заголовками) или самое простое исправление: включая error_code.cpp
файл в вашем проекте и компиляции снова.