我从他们的主页"www.boost.org"下载了"boost"(1.40.0)源代码.我安装了Linux(Ubuntu 9.04 Jaunty)并尝试从我的"LINUX"机器将boost库编译为"WINDOWS"版本(例如".dll",而不是".so").
现在是一个重要的问题:
是否有可能从"LINUX"编写"WINDOWS"BOOST LIBRARIES(如果有人说"是",我会信任他,只要他之前已经完成它将在这里写一个对我有用的解决方案.抱歉悲观,但我试图这样做3天,到目前为止没有任何积极的事情)?
到目前为止,我已经用这种方式编译了c ++程序.对于从Linux到Linux的编译,我使用了"gcc"(或"g ++")编译器.对于从Linux到Windows的编译,我使用了"i586-mingw32msvc-gcc"(或"i568-mingw32msvc-g ++")编译器(例如,"mingw32"包中包含"Ubuntu").
所以这个策略我也想用来编译boost库,到目前为止我已经尝试了这个(在阅读boost主页上的"入门"文章之后):
--1.我从"root"boost源代码目录运行"bootstrap.sh":
./bootstrap.sh
--2.然后我在"project-config.jam"文件中更改了一件事(来自"using gcc;"):
using gcc : : i586-mingw32msvc-gcc ;
--3.最后运行"bjam"可执行文件:
./bjam stage
但是,我没有创建升级库的"Windows"版本,而是获得了大量的错误消息.
有谁能够帮我?
提前致谢.
Petike
官方文档有一个关于交叉编译的部分.与您正在进行的比较,有两个问题:
您指定i586-mingw32msvc-gcc并应指定i586-mingw32msvc-g ++.前者是C编译器,用于编译C++代码库有点棘手;-)
你需要target-os = windows
请注意,有一个已知的错误 - 在创建静态库时,它们不会通过ranlib传递,而mingw链接器对此特别不满.如果计划使用静态库,则必须手动运行ranlib.