无法构建Boost 64位动态库,只能构建静态

con*_*ych 3 c++ static boost dynamic

我最近通过Dreamspark获得了Visual Studio 2010,所以我现在可以编译64位应用程序和库.然后我用Bjam使用以下行编译Boost 1.47库以进行输入.

.\b2 -a -d 0 -q -j 4 -d 0 --variant=debug,release --link=shared,static --threading=multi --address-model=32 --toolset=msvc-10.0
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我得到每个库中的4个(静态调试,动态调试,静态释放,动态释放).编译完成后,我将它们移动到另一个名为win32libs的目录中.然后,我使用完全相同的行来编译64位版本,但是将地址模型切换为64(我知道它们几乎完全相同,因为我从我制作的相同文本文档中复制和过去,以便编译它们很容易).当我在64位编译后进入我的stage目录时,我只看到.lib,没有.dll.这是我正在做什么的问题,或者在某种程度上,不支持64位dll?

谢谢

Ada*_*itz 6

更改Boost编译方式的选项(与仅控制b2执行的选项相反)称为"features",并且不能在命令行上使用破折号.在您的示例中,功能包括:

  • 变种
  • 链接
  • 穿线
  • 地址模型
  • 工具集

它生成的库将根据Windows上Boost库命名方案命名.lib*.lib是静态库; 其他*.lib是相应DLL的导入库.