我使用的是Ubuntu13.04,使用apt-get install mingw-w64安装了mingw-w64。我可以用以下命令编译和链接一个工作的64位版本的程序:
x86_64-w64-mingw32-g++ code.cpp -o app.exe生成64位app.exe文件。
使用什么二进制或命令行标志来生成32位版本的app.exe?
发布于 2013-11-05 15:01:26
这取决于您当前使用的工具链的哪个变体。侏儒和SEH变体(从GCC 4.8.0开始)都只是单一目标。您可以通过检查它们发行版的目录结构来查看它,即它们只包含64位或32位寻址的库,而不是两者都包含的库。另一方面,普通的旧SJLJ发行版确实是双重目标,为了构建32位目标,只需提供-m32标志。如果这不起作用,那么就用i686-w64-mingw32-g++构建吧。
奖金
另外,实现每个GCC异常模型的三个相应的动态链接库(DLLs)是
libgcc_s_dw2-1.dll );libgcc_s_seh-1.dll (SEH);libgcc_s_sjlj-1.dll (SJLJ.)因此,要了解当前的MinGW-w64发行版究竟提供了什么异常模型,您可以
bin中);或___gxx_personality_v* (侏儒)、___gxx_personality_seh* (SEH)、___gxx_personality_sj* (SJLJ)等引用;参见当前GCC异常模型的建立。https://stackoverflow.com/questions/19690504
复制相似问题