在代码块中使用 mingw gcc 构建 64 位 exe
Posted
技术标签:
【中文标题】在代码块中使用 mingw gcc 构建 64 位 exe【英文标题】:Building 64 bit exe using mingw gcc in codeblocks 【发布时间】:2015-02-17 19:43:13 【问题描述】:我正在尝试使用 minGW 64 位构建一个 64 位 exe。可以从here 获得(由于项目正在从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 的任何建议?
这就是我在代码块中的工具链的样子
更新:
我下载了 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】:64 位 g++ 的名称为 x86_64-w64-mingw32-g++.exe
。
确保您使用的是正确的工具链。
确保正确的 g++ 位于 PATH
上并且未被其他版本的 g++ 隐藏。
更新
使用64bit MinGW 版本。
另外,请参阅Mingw-w64 Downloads。
【讨论】:
i686-
前缀表示您使用的是 32 位 MinGW。
所以在降级新的 mingw gcc 之后。当我尝试构建它时,我收到消息“对不起 - 这个程序是在没有插件支持的情况下构建的”
使用不带前缀的.exe
文件,即g++.exe
、ar.exe
,如here所述。
1) g++ -m32
将构建 32 位二进制文件,请检查您的项目配置文件设置。 2) 将“动态库链接器”更改为g++
@DmitrySokolov mingw-w64 不再是双目标(即你不能只使用-m32
来切换),according to here以上是关于在代码块中使用 mingw gcc 构建 64 位 exe的主要内容,如果未能解决你的问题,请参考以下文章
exec: "gcc": executable file not found in %PATH%
x86_64-w64-mingw32-gcc.exe:错误:CreateProcess:没有这样的文件或目录
使用 mingw-w64 和 cmake 构建 32 位和 64 位应用程序