首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Boost-Build:从linux构建可执行窗口

Boost-Build:从linux构建可执行窗口
EN

Stack Overflow用户
提问于 2011-04-22 17:16:47
回答 2查看 1.6K关注 0票数 3

我有一个c++代码库,我需要同时构建windows和unix版本。在没有安装cygwin或类似安装的情况下,windows可执行文件的工作非常重要。哦,我正试着从ubuntu那里实现这一点。

我一直在努力弄清楚如何让boost-build来解决这个问题,但到目前为止还不够.为了简单起见,假设这个项目结构:

代码语言:javascript
复制
root/
|- src/
|  |- core/
|  |  |- number.cpp
|  |  |- number.hpp
|  |- main.cpp
|- jamroot

作为第一步,为了使boost-build produce windows二进制文件成为第一步,我在我的主目录中创建了一个用户-config.jam文件,其中包含以下内容:

代码语言:javascript
复制
using gcc : 4.4 : i586-mingw32msvc-g++ : <rc>i586-mingw32msvc-windres <archiver>i586-mingw32msvc-ar ;

我的jamroot文件如下所示:

代码语言:javascript
复制
exe hello :
    [ glob-tree *.cpp ]
    : : <target-os>windows
;

但是当我运行bjam时,我得到一个unix可执行文件(没有扩展名),但是没有窗口可执行文件。用.exe扩展重命名应用程序并在windows上运行不起作用。我尝试了各种选择,如bjam --toolset=gcc --target-os=windowsbjam --toolset=gcc-mingw --target-os=windows等,但注意到似乎有效。

为了记录在案,mingw是正确安装和工作的。手动调用编译器将生成正确的输出文件。

有什么想法吗?

此外,如何让bjam为用户-config.jam文件中列出的每个工具集构建一个版本?

额外的问题:最终,我需要链接到一个boost库和一个定制的预构建库。如何为不同的目标系统指定不同的库?

UPDATE我从http://mingw-cross-env.nongnu.org/下载了脚本,它允许我一次编译一个混合库和boost库,所以这个问题得到了解决。我找到了一种方法让bjam调用mingw编译器(我在另一台计算机上,所以此时无法提供解决方案)。其他问题仍未解决。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-04-28 01:48:34

不幸的是,我不认为这是可以做到的(我已经失败了很多次),我认为原因是因为混合不支持编译Boost。人们似乎已经做到这一点的唯一方法是使用maintain在win32下维护一个单独的构建环境。

从您的问题中可以看出,您是使用bjam来构建应用程序,还是只是试图构建Boost库的库(.lib或.dll文件),以便稍后与您的应用程序链接。在我的尝试中,我尝试用“通常”的方式来做,因为Windows版本的Boost库是编译的,然后应用程序用mingw32单独编译,并与Boost链接。

不幸的是,到目前为止,我的绊脚石是,我只能获得两个结果--要么编译Boost到Win32动态库(.dll)时构建失败,要么成功构建win32静态库,然后构建libtool拒绝将它们链接到应用程序中。

看看Arch用于编译mingw32-boost的PKGBUILD文件,因为您可能从它们的实现方式中得到一些提示。看来bjam threadapi=win32 target-os=windows就足够了。但是,不要忘记正确设置前缀,这样就不会用win32版本覆盖本地库了!

票数 1
EN

Stack Overflow用户

发布于 2011-04-28 08:22:42

在我的ubuntu盒子里,它很简单

代码语言:javascript
复制
sudo apt-get install mingw

然后建造

代码语言:javascript
复制
export CC=i586-mingw32msvc-gcc
make 

利润!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5758045

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档