Cygwin:如何实际使用 gcc-mingw

问题描述 投票:0回答:4

由于“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 cygwin mingw
4个回答
35
投票

正如您已经发现的,您可以将 gcc-3 与

-mno-cygwin
一起使用。另一种可能性是安装 MinGW-w64 项目中的 32 位和/或 64 位工具链,这些工具链最近已为 Cygwin 打包,因此现在可以通过 setup.exe 获得。不要被相当混乱的可执行文件名称所困扰:
i686-w64-mingw32-gcc
是 32 位编译器,
x86_64-w64-mingw32-gcc
是 64 位编译器。


3
投票

进一步搜索显示面向 MinGW 的交叉编译器尚未准备好,必须使用带 -mno-cygwin 的 GCC v3,或手动安装交叉编译器(请参阅上面的链接)...


2
投票

安装了 Cygwin 的 MingW g++ 包(

mingw64-x86_64-gcc-g++
)后,我也很难弄清楚如何调用它。

感谢this wiki,我发现命令是

x86_64-w64-mingw32-g++
。然后我做了
alias g++='x86_64-w64-mingw32-g++'
并且
g++
开始按预期工作。


1
投票

Cygwin 主页说“像 bash、gcc、less 等单独的包是独立于 DLL 发布的。”。

这里你可以找到如何在cygwin下安装gcc,所以你在安装时也应该选择gcc包,而不仅仅是gcc-mingw。

© www.soinside.com 2019 - 2024. All rights reserved.