我已经从其主页“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的部分。与您的工作进行比较,有两个问题:

  • 您指定i586-mingw32msvc-gcc,并且应指定i586-mingw32msvc-g++。前者是C编译器,用于编译C++代码库有点麻烦;-)
  • 您需要target-os = windows

  • 注意那里有一个已知的错误-创建静态库时,它们不会通过ranlib传递,并且mingw链接器对此特别不高兴。如果计划使用静态库,则必须手动运行ranlib。

    关于c++ - Boost-交叉编译- “from Linux” “to Windows”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1399252/

    10-11 23:18
    查看更多