VC ++ 2010 хочет связать повышение libararies, я даже не указывал

Я пытаюсь создать свое приложение с 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

5
задан Philipp 2 June 2010 в 19:25
поделиться

1 ответ

Это функция библиотек Boost с совместимыми компиляторами для автоматического связывания.

(Эти запутанные имена библиотек охватывают множество вариантов потоковой передачи и связывания, доступных на платформе; есть веские причины использовать это соглашение в Windows ...)

Дополнительная информация здесь:

http: / /www.boost.org/doc/libs/1_33_1/more/getting_started.html#auto-link

Я не могу найти страницу с более поздней версией, но я считаю, что BOOST_ALL_NO_LIB и связанные параметры все еще действительны в 1.43.

5
ответ дан 14 December 2019 в 13:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: