mips-linux-uclibc-gcc 怎么编译64位程序

mips-linux-uclibc-gcc 怎么编译64位程序,第1张

理论上安装支持环境,之后 64 位的 gcc 编译成 32 位程序,就加 -m32 参数即可。当然还一个办法是装个 32 位的 gcc 。

另外,交叉编译也适用于 x86 架构。

不过这么编译经常会出现各种问题,所以编译 32 位的程序,最好还是用 32 位系统。

不一定重装,用 chroot 和 setarch 命令配合即可弄出一个 32 位的子系统。

如果是64位gcc,则取默认模式编译就可以了;如果是在32位系统下,则需要cross compile,编译时需要设定一些参数(指定目标CPU架构等),具体参数要看具体环境。

命令还是gcc、make,版本不限(别“太”旧,旧到还没添加cross compile功能:这项功能很早就有了)。

64位windows平台,编译环境是VS2005,进入Visual Studio 2005 x64 Win64 Command Prompt(单纯的cmd也不一定不行,我没试)。把bjam.exe放在boost根目录下,进入根目录,执行:

bjam --toolset=msvc address-model=64 --with-thread stage

bjam --toolset=msvc address-model=64 --with-date_time stage

关键选项:“address-model=64 ”

64位Linux平台,使用gcc编译。进入boost根目录,执行:

./bjam --toolset=gcc --with-thread stage

./bjam --toolset=gcc --with-date_time stage

linux平台下倒是简单,不过网上有篇文章介绍用如下命令编译,不知道是多此一举,还是适用于某些情况(非64位linux主机?)。

./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-thread stage

./bjam --toolset=gcc "-sBUILD=release <cxxflags>-m64" --with-date_time stage

唉。命令都很简单,可浪费了我不少时间。usage根本没写,去看boost build的嘛,页数n多不说,看完之后能否找到答案还是未知数。网上相关资料很少而且大多南辕北辙,只好一直搜索+尝试。其实我只是想要个64位版本的库而已,这应该不是啥稀罕的需求吧?

在windows平台下,编译出来的是否是64位类库,只有link 64位程序的时候才能发现。如果不是,link程序无法找到类库中定义的函数或者类。linux不知道,因为我整出来直接就是64位了,我也懒得再找一台32位linux主机折腾了。

在1.37之后的boost,如果想要使用boost::thread库,必须有boost::date_time库。当然这件事情又一如既往很酷地没有出现在容易看到的地方。而是让你链接错误后再去玩抓虫游戏。

转载,仅供参考。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11152858.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-14
下一篇 2023-05-14

发表评论

登录后才能评论

评论列表(0条)

保存