Я нахожусь на 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
это содержит:
ОБНОВИТЬ: Похоже, мои заголовки не были собраны правильно или некоторые из них отсутствовали. Я только что скачал и запустил установщик отсюда:
http://sourceforge.net/projects/boost/files/boost-binaries/1.55.0/
VS 2013 из них являются msvc12
Затем я установил свои дополнительные библиотечные зависимости как обычно.
Эти два определения ниже испортили мой компоновщик, выдав одну красивую фразу «LNK2001: неразрешенный внешний символ». Есть ли у вас где-то в вашем коде?
#define BOOST_FILESYSTEM_NO_DEPRECATED
#define BOOST_FILESYSTEM_NO_LIB
Попробуйте изменить /Gd
в /Gr
в настройках вашего проекта. Это может быть связано с различием в соглашении о вызовах.