В MS Visual С++ 2010
У меня был один проект на С++ в моем решении, который использовал 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 файлы boost, тогда все в порядке, за исключением того, что .exe не должно беспокоиться о повышении.
/NODEFAULTLIB:"libboost_thread-vc100-mt-1_45.lib" /NODEFAULTLIB:"libboost_date_time-vc100-mt-1_45.lib"