visual-studio-2010 - 如何编译使用 boost 库的 DLL?

标签 visual-studio-2010 boost dll static compilation

我正在 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/

相关文章:

visual-studio-2010 - 更轻松地将调试器附加到 ASP.NET 应用程序

c++ - Irrlicht 编译,但在执行时崩溃

plugins - 如何使用 automake/autoconf/libtool 为 exe 生成导入库?

visual-studio-2010 - 在Visual Studio 10 IronPython控制台消失之前,我无法读取错误

c# - 是否有任何 Visual Studio 插件来维护文件书签?

android - 使用 Mono for Android 以编程方式/动态添加按钮控件以查看{示例}

boost - 通过串行端口的 OpenSSL

c++ - 使用 `-> decltype` 推断返回类型

c++ - 在 Linux 上 boost windows_shared_memory

c++ - 停止 dll 内操作的安全方法