我最近通过Dreamspark获得了Visual Studio 2010,因此我现在可以编译64位应用程序和库。然后,我用Bjam使用以下行编译了Boost 1.47库以进行输入。无法构建Boost 64位动态库,只有静态
.\b2 -a -d 0 -q -j 4 -d 0 --variant=debug,release --link=shared,static --threading=multi --address-model=32 --toolset=msvc-10.0
当我这样做,我得到每个库(静态调试,动态调试,静态释放,动态释放)4。 编译完成后,我将它们移动到另一个名为win32libs的目录中。然后,我使用完全相同的行来编译64位版本,但将地址模型切换为64(我知道它们几乎完全相同,因为我从我制作的同一文本文档中复制和过去,以便编译它们变得很容易)。当我在64位编译后进入stage目录时,我只能看到.lib,没有.dll。这是我正在做什么的问题,或者在某种程度上,64位dll不受支持?
感谢
我相信你不应该在像“链接”,“地址模型”等选项之前给它双破折号。 – Pablo
刚刚尝试删除其中的一个破折号,并收到“无效的选项”错误。这一切都与32的工作,所以我不明白是什么问题。难道它也是我有C++ express安装在一边专业可能会导致问题? – contrapsych
@ JAKE6459:巴勃罗是正确的,他的意思是删除**两个**破折号。也就是说,你的32位命令行应该是'。\ b2 -a -d 0 -q -j 4 -d 0 variant = debug,release link = shared,static threading = multi address-model = 32 toolset = msvc- 10.0'。当你有破折号时,这些功能被简单地忽略,并且默认是建立的。 – ildjarn