在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,但有一种方法可以静态地执行此操作并保持链接在我的静态库级别.
编辑:
如果我告诉.exe链接器显式忽略boost libs那么一切都没问题,除了.exe根本不用担心boost.
/NODEFAULTLIB:"libboost_thread-vc100-mt-1_45.lib" /NODEFAULTLIB:"libboost_date_time-vc100-mt-1_45.lib"