Как связать Boost в зависимой статической библиотеке

В MS Visual C ++ 2010

у меня был единственный проект C ++ в моем решении, который использовал ускорение и отлично работал.

Затем я решил преобразовать этот проект в статическую библиотеку и создать новый проект, который зависит от этой статической библиотеки.

Теперь моя преобразованная статическая библиотека строится без ошибок и предупреждений (компилятор и компоновщик) но новый проект компилируется, но не связывается.

Я получаю:

1>LINK : fatal error LNK1104: cannot open file 'libboost_thread-vc100-mt-1_45.lib'

В качестве теста я добавил полный путь к каталогу к параметрам компоновщика для этой библиотеки ... а затем он пожаловался на

1>LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_45.lib'

Я добавил полные пути ко всем библиотекам, и теперь строит и запускает.

Я не доволен этим решением, потому что:

  1. Я не хочу, чтобы пользователи библиотеки нужно беспокоиться о подключении увеличение.
  2. Это беспорядок

Я знаю, что ответом будет создание библиотеки DLL, но есть ли способ сделать это статически и сохранить связь на уровне моей статической библиотеки.

Изменить:

Если я скажу Компоновщик .exe, чтобы явно игнорировать библиотеки boost, тогда все в порядке, за исключением того, что .exe не нужно вообще беспокоиться о повышении.

/NODEFAULTLIB:"libboost_thread-vc100-mt-1_45.lib" /NODEFAULTLIB:"libboost_date_time-vc100-mt-1_45.lib"
20
задан Cœur 6 August 2017 в 10:27
поделиться