我已经从其主页“www.boost.org”下载了“boost”(1.40.0)源代码。
我安装了Linux(Ubuntu 9.04 Jaunty),并尝试从我的“LINUX”计算机上将 boost 库编译为“WINDOWS”版本(例如“.dll”,而不是“.so”)。
现在是一个重要的问题:
是否可以从“LINUX” 编译到“WINDOWS” Boost库中(如果有人说"is",只有在他之前做过的情况下,我才会相信他,这里会写一个对我有用的解决方案。)对于这种悲观情绪,但我正在尝试进行大约3天,到目前为止没有任何积极结果)吗?
到目前为止,我已经以这种方式编译了c++程序。
为了从Linux编译到Linux,我使用了“gcc”(或“g++”)编译器。
为了从Linux编译到Windows,我使用了“i586-mingw32msvc-gcc”(或“i568-mingw32msvc-g++”)编译器(例如,包含在“Ubuntu”的“mingw32”软件包中)。
因此,我还想使用这种策略来编译boost库,并且到目前为止(在阅读boost主页上的“入门”文章之后),我已经尝试过:
--1。我已经从“root” boost源代码目录运行了“bootstrap.sh”:
./bootstrap.sh
--2。然后,我更改了文件“project-config.jam”中的一件事(从“使用gcc;”开始):
using gcc : : i586-mingw32msvc-gcc ;
--3。最后运行“bjam”可执行文件:
./bjam stage
但是,与其创建“Windows”版本的 boost 库,我没有很多错误消息。
有谁能够帮助我?
提前致谢。
Petike
最佳答案
官方文档中有关于cross compilation的部分。与您的工作进行比较,有两个问题:
注意那里有一个已知的错误-创建静态库时,它们不会通过ranlib传递,并且mingw链接器对此特别不高兴。如果计划使用静态库,则必须手动运行ranlib。
关于c++ - Boost-交叉编译- “from Linux” “to Windows”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1399252/