GCC、Cygwin、MinGW、TDM-GCC

本文详细介绍了GCC(GNU Compiler Collection)和MinGW(Minimalist GNU for Windows)作为跨平台编译器在Windows环境下的应用,包括它们支持的语言、功能以及与Cygwin和MinGW-w64的关系。

GCC–the GNU Compiler Collection

The GNU Compiler Collection includes front ends for C, C++, Objective-C, Fortran, Java, Ada, and Go, as well as libraries for these languages (libstdc++, libgcj,…). GCC was originally written as the compiler for the GNU operating system. The GNU system was developed to be 100% free software, free in the sense that it respects the user’s freedom.

Microsoft Windows

  • The Cygwin project;

  • The MinGW project.

GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是一套以GPL及LGPL许可证所发布的自由软件,也是GNU计划的关键部分,亦是自由的类Unix及苹果计算机Mac OS X 操作系统的标准编译器。GCC(特别是其中的C语言编译器)也常被认为是跨平台编译器的事实标准。

GCC原名为GNU C语言编译器(GNU C Compiler),因为它原本只能处理C语言。GCC很快地扩展,变得可处理C++。之后也变得可处理Fortran、Pascal、Objective-C、Java、Ada,以及Go与其他语言。

Cygwin

Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行UNIX类系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在Windows NT、Windows 2000、Windows XP以及Windows Server 2003上比较好,在Windows 95和Windows 98上,相对差劲一些。目前Cygwin由Red Hat等负责维护。

MinGW–Minimalist GNU for Window

MinGW(Minimalist GNU for Windows),又称mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,包括一系列头文件(Win32API)、库和可执行文件。

另有可用于产生32位及64位Windows可执行文件的MinGW-w64项目,是从原本MinGW产生的分支。

MinGW是从Cygwin(1.3.3版)基础上发展而来。

GCC支持的语言大多在MinGW也受支持,其中涵盖C、C++、Objective-C、Fortran及Ada。

对于C语言之外的语言,MinGW使用标准的GNU运行库,如C++使用GNU libstdc++

但是MinGW使用Windows中的C运行库。因此用MinGW开发的程序不需要额外的第三方DLL支持就可以直接在Windows下运行,而且也不一定必须遵从GPL许可证。这同时造成了MinGW开发的程序只能使用Win32API和跨平台的第三方库,而缺少POSIX支持,大多数GNU软件无法在不修改源代码的情况下用MinGW编译。

TDM-GCC

A compiler suite for 32- and 64-bit Windows based on the GNU toolchain

TDM-GCC是一个 Windows 版的编译器套件。

它结合了 GCC 工具集中最新的稳定发行版本,包括了自由并开源的 MinGW 或 MinGW-w64 的运行时 APIs,以此创建一个 LIBRE 来替代微软的编译器及其平台 SDK。它可以创建自 Windows 95 以来任何 Windows 操作系统版本之上的 32 位或 64 位的二进制文件。





转自:http://www.kankanews.com/ICkengine/archives/135316.shtml

在安装 MinGW-w64 后,如果使用命令 `gcc -v` 查看 GCC 版本信息时发现命令无效,可能的原因和解决方法如下: ### 1. **检查环境变量配置** 安装 MinGW-w64 后,必须将 `bin` 目录添加到系统环境变量 `PATH` 中,否则系统无法识别 `gcc` 命令。 - **操作步骤**: 1. 右键点击“此电脑”或“我的电脑”,选择“属性”。 2. 点击“高级系统设置”,在“系统属性”窗口中点击“环境变量”。 3. 在“系统变量”部分找到 `Path`,点击“编辑”。 4. 添加 MinGW-w64 的 `bin` 路径,例如:`C:\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin`。 5. 保存设置后,重新打开命令行工具并输入 `gcc -v`,查看是否生效 [^5]。 ### 2. **确认路径是否正确** 在添加环境变量时,确保路径指向正确的 `bin` 文件夹。例如,如果将 MinGW-w64 安装到 `C:\mingw-w64`,则路径应为 `C:\mingw-w64\x86_64-4.9.2-posix-seh-rt_v3-rev1\mingw64\bin`,而不是其他目录。 - **验证方法**: 打开命令行,输入 `where gcc`,系统会列出所有 `gcc.exe` 的路径。如果未显示正确的路径,说明环境变量配置有误 [^1]。 ### 3. **检查命令拼写与格式** 确保输入的命令正确无误,例如 `gcc -v` 中的连字符 `-` 是英文字符,而不是中文字符。此外,某些系统可能要求使用 `gcc --version` 而非 `gcc -v` 来查看版本信息 [^4]。 ### 4. **重新安装 MinGW-w64** 如果环境变量配置正确但问题仍未解决,可能是安装文件损坏或不完整。建议重新下载 MinGW-w64 并解压安装,确保文件完整无误。 - **下载地址**: 可以通过 [SourceForge](https://sourceforge.net/projects/tdm-gcc/files/) 下载 TDM-GCC 安装包,或者使用 MinGW-w64 的官方发布版本 [^2]。 ### 5. **测试命令行工具** 在某些情况下,`cmd` 或 `PowerShell` 可能缓存了旧的环境变量设置。尝试重启命令行工具,或者重启系统,以确保新的环境变量生效 [^5]。 ### 6. **检查与其他编译器的冲突** 如果系统中安装了多个编译器(如 Visual Studio、Cygwin 或其他版本的 MinGW),可能会导致路径冲突。可以通过 `where gcc` 命令检查当前使用的 `gcc` 是否来自 MinGW-w64,而不是其他编译器 [^4]。 ### 7. **验证 MinGW-w64 安装完整性** 确保 `bin` 目录中包含 `gcc.exe` 文件。如果缺少该文件,说明安装过程可能未正确完成。可以尝试重新拷贝文件或重新安装 [^1]。 --- ### 示例代码 以下是一个简单的测试程序,用于验证 `gcc` 是否能够正常编译和运行: ```c #include <stdio.h> int main() { printf("Hello, World!\n"); return 0; } ``` 保存为 `hello.c`,然后在命令行中执行以下命令: ```bash gcc hello.c -o hello ./hello ``` 如果输出 `Hello, World!`,则说明 `gcc` 已正确安装并配置 [^4]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值