我正在使用Ubuntu 13.04,并使用安装了mingw-w64 apt-get install mingw-w64
。我可以使用以下命令编译并链接程序的64位工作版本:
x86_64-w64-mingw32-g++ code.cpp -o app.exe
生成一个64位的app.exe文件。
我使用哪些二进制或命令行标志来生成32位版本的app.exe?
这取决于您当前正在使用哪种工具链。既DWARF和SEH变体(它们来自GCC 4.8.0开始)仅单一目标。您可以通过检查其发行版的目录结构来自己查看,即它们仅包含具有64位和32位寻址的库,而不能同时包含两者。另一方面,普通的旧SJLJ发行版确实是双重目标,而要构建32位目标,只需提供-m32
标志即可。如果那行不通,那就用构建i686-w64-mingw32-g++
。
顺便说一句,实现每个GCC异常模型的三个相应的动态链接库(DLL)是
libgcc_s_dw2-1.dll
(矮人);libgcc_s_seh-1.dll
(SEH);libgcc_s_sjlj-1.dll
(SJLJ)。因此,要找出您当前的MinGW-w64发行版到底提供了什么异常模型,您可以选择
bin
);要么___gxx_personality_v*
(DWARF),___gxx_personality_seh*
(SEH),___gxx_personality_sj*
(SJLJ)之类的引用;请参阅获取当前的GCC异常模型。本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句