Я пытаюсь создать свое приложение с MSVC 2010 вместо GCC. С GCC все хорошо работает. Мое приложение использует boost_system и boost_thread библиотеки. Я создал повышение с VC2010 в "системном" расположении, которое означает, что библиотеки называют просто libboost_system.lib (и не libboost_system_compiler_threading_version_wtf_snafu.lib), освобождение находится в C:\Boost\lib, Make-файл указывает
LFLAGS = /NOLOGO /INCREMENTAL:NO /SUBSYSTEM:CONSOLE
LIBS = /LIBPATH:C:/Boost/lib libboost_system.lib libboost_thread.lib Ws2_32.lib
при вызове nmake это компилирует, но при попытке связаться это выходит с
LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_43.lib
Я имею в виду серьезно, WTF? Я сказал этому связывать libboost_systen.lib и libboost_thread.lib, каким образом это пытается связать libboost_data_time и почему это предполагает, что я создал освобождение в "теговом" расположении?? Как я могу остановить MSVC, пытающийся быть умным и предположить то, что я, возможно, хотел связать?
Спасибо, Philipp
Это функция библиотек Boost с совместимыми компиляторами для автоматического связывания.
(Эти запутанные имена библиотек охватывают множество вариантов потоковой передачи и связывания, доступных на платформе; есть веские причины использовать это соглашение в Windows ...)
Дополнительная информация здесь:
http: / /www.boost.org/doc/libs/1_33_1/more/getting_started.html#auto-link
Я не могу найти страницу с более поздней версией, но я считаю, что BOOST_ALL_NO_LIB и связанные параметры все еще действительны в 1.43.