当前位置: C语言 -- 专题 -- Cygwin环境下使用gcc编译C程序

Cygwin环境下使用gcc编译C程序

Cygwin是一款在Windows平台上运行的模拟Linux环境的软件,正如其官网所描述:Get that Linux feeling - on WindowsGCC(GNU Compiler Collection)是由GNU开发的一款编译器,最初是作为GNU操作系统编译器编写的,现在可以编译CC++Objective-CFortranAdaGo等多种语言。本教程将讨论如何在Cygwin环境下使用GCC编译器编译C程序。

1、前往Cygwin官网,下载安装引导程序,具体如下图所示:

Cygwin环境下使用gcc编译C程序_1


2、双击安装引导程序,开始安装软件,选择下一页(N),具体如下图所示:

Cygwin环境下使用gcc编译C程序_2


3、选择Install from Internet,具体如下图所示:

Cygwin环境下使用gcc编译C程序_3


4、选择软件的安装路径,这里使用的是默认路径,具体如下图所示:

Cygwin环境下使用gcc编译C程序_4


5、选择存放下载的安装软件的目录,这里将文件下载到F软件目录内,具体如下图所示:

Cygwin环境下使用gcc编译C程序_5


6、选择网络连接方式,这里使用的是系统默认的网络连接方式,具体如下图所示:

Cygwin环境下使用gcc编译C程序_6


7、选择下载软件的站点,这里使用的是华为云,具体如下图所示:

Cygwin环境下使用gcc编译C程序_7


8、如果要使用GCC编译器,还需要安装binutilsgcc-coregcc-g++gdbmake软件包。这些软件包不是默认安装的,需要手动添加。这些安装包都在Devel目录中,具体如下图所示:

Cygwin环境下使用gcc编译C程序_8


9、以binutils为例,在Devel目录中找到binutils软件包,点击软件包后面的skip,就可以将binutils添加到安装目录中,具体如下图所示:

Cygwin环境下使用gcc编译C程序_9


10、使用上面的方法依次将gcc-coregcc-g++gdbmake添加到安装目录中,点击下一页(N)后,就可以看到将要安装的软件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_10


11、然后依次点击下一页(N),完成软件的安装。

Cygwin环境下使用gcc编译C程序_11

Cygwin环境下使用gcc编译C程序_12


12、安装完成后桌面上会出现一个Cygwin64图标。

Cygwin环境下使用gcc编译C程序_13


13、启动Cygwin64软件,输入gcc -v,如果出现以下类似界面,则说明GCC安装成功。

Cygwin环境下使用gcc编译C程序_14


14C文件存放的位置是C:\Cygwin\Home\username,这里演示的用户名是gch,所以存放位置是C:\Cygwin\Home\gch,具体如下图所示:

Cygwin环境下使用gcc编译C程序_15


15、使用ls -l命令可以检查该位置的C文件,当前该位置存在一个test.c文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_16


16、使用gcc test.c -o test命令编译test.c文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_17


17、编译后,在当前位置会多出一个test.exe可执行文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_18


18、使用./test或者./test.exe命令可执行该文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_19


19、使用gcc编译由多个C源文件构成的C程序,假设当前位置存在以下3C文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_20


上述3个文件的源代码分别为:

gchheader.h头文件

1 
2 
3 
4 
5 
6 
7 
#ifndef GCHHEADER_H_INCLUDED
#define GCHHEADER_H_INCLUDED

void myprint(void);

#endif // GCHHEADER_H_INCLUDED

funcdef.c源文件

1 
2 
3 
4 
5 
6 
7 
8 
#include <stdio.h>
#include "gchheader.h"

void myprint(void)
{
    printf("Hello World!");
}

test.c源文件

1 
2 
3 
4 
5 
6 
7 
8 
9 
#include "gchheader.h"

int main(void)
{
    myprint();

    return 0;
}

test.c源文件中需要调用myprint函数;该函数在gchheader.h头文件中声明,在funcdef.c源文件中定义,这里funcdef.c源文件也需要编译。


20、使用gcc -c test.c -c funcdef.c命令编译上述文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_21


21、当前位置会增加2个新文件,即funcdef.otest.o,具体如下图所示:

Cygwin环境下使用gcc编译C程序_22


22、使用gcc test.o funcdef.o命令,将test.o文件和funcdef.o文件链接生成一个可执行文件,这里生成的是a.exe文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_23


如果要自定义生成的可执行文件的文件名,可使用参数o,例如:gcc test.o funcdef.o -o testtest为自定义的可执行文件名。

Cygwin环境下使用gcc编译C程序_24


这样可生成一个名为test.exe的可执行文件,具体如下图所示:

Cygwin环境下使用gcc编译C程序_25


23、使用./test命令可执行生成的test.exe文件。

Cygwin环境下使用gcc编译C程序_26