GCCGNU Compiler Collection)是Linux下最主要的编译工具,
GCC不仅功能非常强大,结构也非常灵活,
它可以通过不同的前端模块来支持各种语言,如Java、Fortran、Pascal、Modula-3...

一、环境安装

1. Windows 下的编译环境

Windows 系统没有自带C编译器,需要通过安装一些类似MinGW的软件来使用C编译

MinGW 有专门的Win32 API的头文件,来把代码中Linux方式的系统调用替换为对应的Windows下的调用方式,
某种程度上可以称之为将Linux调用 翻译为 Windows 调用

介绍:
MinGW 全称 Minimalistic GNU for Windows,某种程度上可以看做是windows版本下的GCC
MinGW 又称 mingw32,是将GCC编译器和GNU Binutils移植到Win32平台下的产物,
包括一系列头文件(Win32 API)、库和可执行文件。

MinGW有一个Msys的子项目,可以提供一些模拟Linuxshell和基本的Linux工具,
Msys是一个辅助环境

  • MinGW是最先出来的,但是当时只有32位系统,所以只支持32位系统;
  • MinGW-w64 既支持64位,也支持32位,也支持32位和64位的交叉编译;
    gcc官方支持MinGW-w64,所以更建议MinGW-w64

下载安装:
MinGW-w64下载地址:https://sourceforge.net/projects/mingw-w64/files/

x86_6464位系统用的版本,现在我们一般用的是64位系统,所以我们可以在选择x86_64的下载,

seh 结尾是纯 64 位编译
sjlj结尾是3264两种编译,需加-m32-m64参数编译

下载压缩包,直接解压,设置环境变量即可

2. Linux 下的编译环境

一般Linux系统都自带了C编译工具 gccC++ 编译工具 g++
如果没有,我们也可以通过在线安装他们

centos 安装例子:装gcc、c++编译器以及内核文件

$ yum -y install gcc gcc-c++ kernel-devel

二、基本命令

windows 下编译:
文件:./main.c

#include <stdio.h>

int main() {
    printf("Hello, World!\n");
    return 0;
}
# 编译
$ gcc main.c -o main.exe
# 执行
$ ./main.exe
Hello, World!

Linux 下编译:

gcc helloworld.c -o helloworld

执行

$ ./helloworld
Hello, World!

不管在 windows 下还是 Linux 下:
-o helloworld 指定编译的可执行文件名称 为 helloworld
-o helloworld.xx 指定随意的 .xx 扩展名,也是可以执行的,但是不建议随意取名