由于“gcc -mno-cygwin”不再工作,我一直在寻找一种方法来让面向 MinGW 的 GCC 在我的 Cygwin 环境中运行。 (此时运行 MSYS 环境不是一个选项。)[1]
Cygwin 安装程序提供了一个软件包“gcc-mingw”,它可以安装以下内容:
lib/gcc/i686-pc-mingw32/3.4.4/cc1.exe
lib/gcc/i686-pc-mingw32/3.4.4/collect2.exe
lib/gcc/i686-pc-mingw32/3.4.4/crtbegin.o
lib/gcc/i686-pc-mingw32/3.4.4/crtend.o
缺少的是“gcc”前端。那么,我该如何调用这个编译器呢?我希望不必手动通过“cc1”,不是吗?
我用谷歌搜索,但找不到任何与该主题相关的内容......
[1] 多年后回到这个问题,今天 MSYS2 绝对是正确的选择。除非您在 Linux 上运行,否则 MXE 将满足您的 MinGW 编译需求。
正如您已经发现的,您可以将 gcc-3 与
-mno-cygwin
一起使用。另一种可能性是安装 MinGW-w64 项目中的 32 位和/或 64 位工具链,这些工具链最近已为 Cygwin 打包,因此现在可以通过 setup.exe 获得。不要被相当混乱的可执行文件名称所困扰:i686-w64-mingw32-gcc
是 32 位编译器,x86_64-w64-mingw32-gcc
是 64 位编译器。
进一步搜索显示面向 MinGW 的交叉编译器尚未准备好,必须使用带 -mno-cygwin 的 GCC v3,或手动安装交叉编译器(请参阅上面的链接)...
安装了 Cygwin 的 MingW g++ 包(
mingw64-x86_64-gcc-g++
)后,我也很难弄清楚如何调用它。
感谢this wiki,我发现命令是
x86_64-w64-mingw32-g++
。然后我做了 alias g++='x86_64-w64-mingw32-g++'
并且 g++
开始按预期工作。