在Codeblocks中使用mingw gcc构建64位exe文件

3
我正在尝试使用minGW 64位构建64位exe。可以从这里获取(由于该项目从sourceforge.net迁移到mingw-w64.org,建议使用mingw-w64.org)。我的电脑是64位的,但是当我通过编译器构建代码时,返回的是一个32位的exe。以下是程序的输出:
-------------- Build: Debug in TestCodeBlocks (compiler: MinGW GCC - 2/17/2015)---------------

i686-w64-mingw32-g++.exe -Wall -std=c++98 -g  -c C:\Users\admin\TestCodeBlocks\main.cpp -o obj\Debug\main.o
i686-w64-mingw32-g++.exe  -o bin\Debug\TestCodeBlocks.exe obj\Debug\main.o   
Output file is bin\Debug\TestCodeBlocks.exe with size 58.17 KB

有关为什么我可能会得到一个32位exe的任何建议?
这是我的codeblocks工具链的样子。
更新:
我下载了64位Mingw gcc编译器,这是我的设置。
但是当我尝试运行程序时,我得到了以下错误信息。
x86_64-w64-mingw32-g++.exe -Wall -std=c++98 -g -m32  -c C:\Users\admin\TestCodeBlocks\main.cpp -o obj\Debug\main.o
ar  -o bin\Debug\TestCodeBlocks.exe obj\Debug\main.o   
ar: no operation specified
Process terminated with status 1 (0 minute(s), 0 second(s))
0 error(s), 0 warning(s) (0 minute(s), 0 second(s))
1个回答

3
64位的g++名称为x86_64-w64-mingw32-g++.exe
确保您正在使用正确的工具链。
确保正确的g++在PATH上,并且没有被其他版本的g++隐藏。 更新 使用64位MinGW版本。
此外,请参见Mingw-w64下载

1
"i686-" 前缀表示您正在使用32位的MinGW。 - Dmitry Sokolov
所以在降级新的mingw gcc之后,当我尝试构建它时,会收到“抱歉 - 此程序已构建而不支持插件”的消息。 - MistyD
使用没有前缀的.exe文件,如g++.exear.exe,如此处所述。 - Dmitry Sokolov
  1. g++ -m32 可以构建 32 位二进制文件,请检查您的项目配置设置。
  2. 将“动态库链接器”更改为 g++
- Dmitry Sokolov
@DmitrySokolov 根据这里的说法,mingw-w64不再是双重目标(即您不能只使用“-m32”进行切换)。 - M.M
@Matt McNabb 这只涉及到64位的“SEH” MinGW版本,无法使用SEH异常处理构建32位二进制文件,但也有可以的“SJLJ”版本。 - Dmitry Sokolov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接