Компоновщику требуются версии компилятора и Boost в именах lib-файлов. фатальная ошибка LNK1104

#c #visual-c #boost

#c #visual-c #boost

Вопрос:

Для установки boost я запускаю

 b2 install optimization=speed variant=debug,release --layout=tagged --prefix=BOOST_DIR
  

Имена lib-файлов выглядят так

 ...
libboost_serialization-mt.lib
libboost_serialization-mt-gd.lib
...
  

При компоновке проекта я получаю сообщение об ошибке

ССЫЛКА: фатальная ошибка LNK1104: не удается открыть файл ‘libboost_serialization-vc140-mt-gd-1_62.lib’

Этот файл не задан в настройках проекта никакими именами, задан только каталог этого файла. Проект успешно связывается, если я добавляю версии compiler и Boost к имени файла.
Могу ли я сделать так, чтобы проект не нуждался в переименовании lib-файлов Boost при установке новой версии Boost?

Ответ №1:

При создании boost с --layout=tagged помощью опции необходимо определить BOOST_AUTO_LINK_TAGGED , прежде чем включать какой-либо заголовок boost, чтобы разрешить корректную работу автоматической компоновки. В противном случае отключите автоматическое связывание, определив BOOST_ALL_NO_LIB и явно указав библиотеку.