ошибка LNK2019: неразрешенный внешний символ & quot; повышение класса :: system :: error_category

Я нахожусь на Visual Studio 2013, скачал обычные библиотеки наддува (версия 1.55) и установил их в C: / Program Files / Boost /

Затем я создал новый пустой C ++ проект и добавил следующее в мои «Включить каталоги»:

C: \ Program Files \ Boost \ boost_1_55_0;

Это мой код:

#include <boost/asio.hpp>
#include <iostream>

int main(int argc, char * argv[])
{
boost::asio::io_service io_service;

for (int x = 0; x < 42; ++x)
{
io_service.poll();
std::cout << "Counter: " << x << std::endl;
}

return 0;
}

однажды bootstrap а также ./b2 завершив выполнение, я добавил следующий путь к «Дополнительные зависимости библиотеки»:

C: \ Program Files \ Boost \ boost_1_55_0 \ stage \ lib

но я получаю следующие сообщения об ошибках:

Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::system_category(void)" (?system_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "public: __cdecl boost::system::error_code::error_code(void)" (??0error_code@system@boost@@QEAA@XZ)
Main.obj : error LNK2019: unresolved external symbol "class boost::system::error_category const & __cdecl boost::system::generic_category(void)" (?generic_category@system@boost@@YAAEBVerror_category@12@XZ) referenced in function "void __cdecl boost::system::`dynamic initializer for 'errno_ecat''(void)" (??__Eerrno_ecat@system@boost@@YAXXZ)

Если я пойду к C:\Program Files\Boost\boost_1_55_0\stage\lib это содержит:

  • libboost_system-vc120-мт-1_55
  • libboost_system-vc120-мт-Г.Д.-1_55

ОБНОВИТЬ: Похоже, мои заголовки не были собраны правильно или некоторые из них отсутствовали. Я только что скачал и запустил установщик отсюда:

http://sourceforge.net/projects/boost/files/boost-binaries/1.55.0/

VS 2013 из них являются msvc12

Затем я установил свои дополнительные библиотечные зависимости как обычно.

3

Решение

Эти два определения ниже испортили мой компоновщик, выдав одну красивую фразу «LNK2001: неразрешенный внешний символ». Есть ли у вас где-то в вашем коде?

#define BOOST_FILESYSTEM_NO_DEPRECATED
#define BOOST_FILESYSTEM_NO_LIB
1

Другие решения

Попробуйте изменить /Gd в /Gr в настройках вашего проекта. Это может быть связано с различием в соглашении о вызовах.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector