В MS Visual C ++ 2010
В моем решении был один проект C ++, который использовал boost и работал отлично.
Затем я решил преобразовать этот проект в статическую библиотеку и создать новый проект, который зависит от этой статической библиотеки.
Теперь моя преобразованная статическая библиотека собирается без ошибок и предупреждений (компилятор и компоновщик)
но новый проект компилируется, но не связывается.
Я получаю:
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'
Я добавил полные пути ко всем библиотекам, и теперь он собирается и запускается.
Я не доволен этим решением, потому что:
- Я не хочу, чтобы пользователи библиотеки
надо беспокоиться о связывании в
увеличение.
- Это грязно
Я знаю, что ответом будет создание DLL, но есть ли способ сделать это статически и сохранить связь на уровне моей статической библиотеки.
Edit:
Если я скажу компоновщику .exe явное игнорирование библиотек boost, тогда все будет в порядке, за исключением того, что .exe вообще не придется беспокоиться о boost.
/NODEFAULTLIB:"libboost_thread-vc100-mt-1_45.lib" /NODEFAULTLIB:"libboost_date_time-vc100-mt-1_45.lib"