我正在 VS 2010 中开发一个 DLL 项目,我想在我的代码的某些部分使用 boost 互斥锁。但是当我编译项目以发布最终 DLL 时,出现此链接错误:
LINK : fatal error LNK1104: cannot open file 'libboost_date_time-vc100-mt-1_49.lib'
我已经用这个命令编译了 boost:
bjam install --toolset=msvc variant=release link=static threading=multi runtime-link=static
& 我有一个名为 libboost_date_time-vc100-mt-s-1_49.lib
的文件,当我将项目的配置类型从动态链接库 (DLL) 更改为静态库时,项目构建成功,但我只需要作为 DLL 文件发布(& 我的最终 DLL 不能对其他外部 DLL 有任何依赖性)。我知道是编译boost导致的问题,但是不知道怎么重新编译
有什么指导方针吗?
最佳答案
检查您是否静态链接运行时库(配置属性-->C/C++-->代码生成-->运行时库:多线程(/MT)。
否则,链接CRT并动态 boost 。为此目的,像这样构建 boost :
bjam --toolset=msvc variant=release link=shared threading=multi runtime-link=shared
关于visual-studio-2010 - 如何编译使用 boost 库的 DLL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10928717/