当前位置:  开发笔记 > 编程语言 > 正文

Boost - 交叉编译 - "从Linux"到"Windows"

如何解决《Boost-交叉编译-"从Linux"到"Windows"》经验,为你挑选了1个好方法。

我从他们的主页"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



1> Vladimir Pru..:

官方文档有一个关于交叉编译的部分.与您正在进行的比较,有两个问题:

    您指定i586-mingw32msvc-gcc并应指定i586-mingw32msvc-g ++.前者是C编译器,用于编译C++代码库有点棘手;-)

    你需要target-os = windows

请注意,有一个已知的错误 - 在创建静态库时,它们不会通过ranlib传递,而mingw链接器对此特别不满.如果计划使用静态库,则必须手动运行ranlib.


它最终适合我.我错了,我只试图编译"线程"库而不是"全部".并且线程无法编译,因为它无法找到"pthreads".我只添加了:"threadapi = win32",之后就可以了.所以整个命令是:"./ bjam --layout = system variant = release threading = multi link = shared runtime-link = shared toolset = gcc target-os = windows threadapi = win32 stage".但我仍然无法编译这些库:-graph -graph_parallel -iostreams -math(部分)-python其他可以编译.
推荐阅读
吻过彩虹的脸_378
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有