使用集成开发工具编译C源文件

由于C语言的通用性和普及型,很多厂商和组织都自主开发了C语言编译系统。本文主要讨论如何在Winodws、Linux和MacOS系统下编译C源文件,主要探讨VS集成开发工具和GCC编译工具。

在Windows下使用VS编译C源文件

Windows系统主流的C语言编译系统为微软公司研发的Microsoft Visual Studio,简称VS,实际上C语言编译系统仅是VS的一个子集,VS是一个集成开发环境(Integrated Development Environment),简称IDE,它提供了C、C++、C#、Basic等多种编程语言的完整开发工具集。IDE把编程过程中需要的编辑器、编译器、连接器等软件工具集成在一起统一管理和使用,使开发过程中各种工作都变得很方便,极大提高了编程效率。
当前最新的VS版本是VS2022,建议大家使用,因为计算机二级C语言考试要求的C语言开发环境是VS2010,学习C语言的同时也可以考取计算机二级证书。另外一个原因是学习C语言,无需太复杂的开发工具,使用VS2010就足够了。
使用开发C程序,必须要在计算机上安装VS2010开发环境,微软公司提供了安装包方便开发者在计算机上安装开发环境,安装包可以通过微软公司官网下载,也可以通过其它软件平台下载。
下载后运行安装包,按照安装程序的提示完成的安装,在安装过程中,一般选择默认安装选项。
VS2010安装完成后,启动VS2010开发环境,开发环境的默认界面见下图1-9。
图 1-9VC2010默认界面
使用VS2010开发C程序,需要先建立一个软件项目,软件项目是开发软件所需资源的集合,便于对多个程序代码文件、开发程序需要的相关资源文件进行管理。例如要编写一个游戏程序,游戏程序一般会编写多个C程序代码文件,每个代码文件完成一个确定的功能,游戏程序除了多个代码文件外,还需要视频、音频、图片、3D模型等资源文件,软件项目就是把这些代码文件和资源文件进行统一管理。
下面建立HelloWorld软件项目,并在项目中建立hello.c代码文件,在hello.c代码文件内编写C语言代码,最后编译和运行HelloWorld程序。

建立HelloWorld软件项目

选择【文件】菜单下【新建】命令,在弹出的子菜单中选择【项目】命令,VC2010弹出“新建项目”对话框。
图 1-10 VC2010新建项目界面
在“新建项目”对话框内,左侧“项目模板”窗口选择Visual C++目录下的“Win32”项目;中间窗口选择“Win32 控制台应用程序”,底部名称栏填入项目名称“HelloWorld”,位置栏用于选择项目文件的存储目录,这里选择E盘下的sample目录,可单击【浏览】按钮选择其它目录,底部解决方案名称和项目名称相同,不需要修改;选择底部检查框“为解决方案创建目录”,让VC2010在位置目录下创建项目目录。
新建项目内容填写完成后,单击【确定】按钮,进入项目创建向导。
图 1-11Win32应用程序向导
图1-11创建的应用程序项目类型,确认无误后,单击【下一步】。
图 1-12 应用程序设置
图1-12为应用程序设置,应用程序类型选择“控制台应用程序”,附加选项检查“空项目”检查框,“空项目”是创建一个空的项目,不包含默认生成的代码文件。单击【完成】按钮,VC2010会创建“HelloWorld”项目。
“HelloWorld”项目界面见图1-13。
图 1-13HelloWorld项目界面
VC2010左侧窗口是解决方案资源管理器,解决方案资源管理器主要管理“HelloWorld”项目的代码文件和资源文件,开发者可以通过资源管理器创建代码文件或添加资源文件。
“HelloWorld”项目下包括外部依赖项、头文件、源文件、资源文件四个目录,每个目录可以存储具有同种类型的文件。外部依赖项主要存储项目需要的外部文件,如第三方库等;头文件主要存储扩展名为“.h”的源代码的头文件;源文件主要存储扩展名为“.c”或“.cpp”源代码文件;资源文件主要存储项目需要的资源,如图片、音视频等文件。

建立HelloWorld.c源代码文件

在解决方案资源管理器窗口选择源文件目录,单击鼠标右键,在弹出的菜单中,选择【添加】命令,在出现的子菜单中选择【新建】命令,VC2010弹出添加新项对话框,见图1-14。
图 1-14 添加新项对话框
左侧已安装模板窗口可以筛选新添加项的类型,选择代码模板,右侧窗口会列出代码模板内的文件类型,选择C++文件类型,底部名称栏输入“HelloWorld.c”。VC2010主要用于C++开发,C++文件的扩展名是“.cpp”,也支持C开发。底部名称栏输入扩展名为“.c”的文件,可以创建C代码文件。确认输入无误后,单击【添加】按钮,VC2010会在解决方案资源管理器源文件目录下创建“HelloWorld.c”文件,同时在解决方案资源管理器右侧窗口打开代码编辑器。如图1-15所示。
图 1-15 代码编辑窗口
在代码编辑器窗口,输入下面的C语言代码:
#include <stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
图 1-16 HelloWorld.c代码
代码编写完成,通过快捷键Ctrl+S、或选择文件菜单下面的保存命令、或单击窗口工具条的保存图标都可以把“HelloWorld.c”代码文件保存到磁盘。若需要再次编辑“HelloWorld.c”代码文件,可选择文件菜单下面的打开命令、或用鼠标双击资源管理器窗口内的代码文件名称,都可以再次打开“HelloWorld.c”代码文件进行编辑。

运行HelloWorld程序

通过快捷键F7,或选择生成菜单下的生成解决方案命令、或选择生成菜单下的生成HelloWorld命令都可以对项目内的所有代码文件进行编译并连接。在项目编译和连接过程中,若代码存在语法错误或连接错误,VC会在编译器输出窗口列出有问题的代码文件并定位到代码语句行,开发者按照问题说明修改代码后,可再次执行项目的编译和连接。代码编辑器下方窗口为项目生成信息输出窗口,见图1-17。
图 1-17 项目生成信息输出窗口

代码编译

若需要对单个C源程序进行编译,可以在解决方案资源管理器窗口内选择代码文件进行编译。例如选择“HelloWorld.c”文件,单击鼠标右键,在弹出的菜单中选择编译命令或按下Ctrl+F7命令,都可以编译“HelloWorld.c”文件,编译信息会输出到编译器输出窗口。如代码有语法错误,编译器输出窗口会列出有语法问题的语句。
“HelloWorld”项目生成后,选择【调试】菜单下的【开始执行(不调试)】命令可执行HelloWorld程序。程序界面如图1-18所示。
图 1-18 HelloWorld程序执行界面

使用GCC编译C源文件

由于Linux的开放性,市场上存在着许多不同的Linux版本,但它们都使用了Linux内核,Ubuntu是其中的一个Linux版本。本文使用Ubuntu系统探讨基于Linux的C语言编译系统。
GCC是Linux系统主流的C语言编译系统,GCC(GNU Compiler Collection,GNU编译器套件)是由GNU开发的编程语言编译器,它支持C、C++、Objective-C、GO等语言的编译。GCC不是一个集成开发环境,它仅是一个编译系统,编译过程都是通过命令实现。

Ubuntu安装GCC

Ubuntu系统安装GCC比较方便,Ubuntu提供了一个build-essential软件包,该软件包封装了GCC的安装依赖,查看该软件包的依赖关系:
安装了该软件包后,GCC会被被自动安装。安装命令如下:
sudo apt-get install build-essential

GCC安装完成后,可以输入下面的命令验证GCC是否安装成功:

若安装成功,将输出类似下面的内容:

建立HelloWorld程序

GCC仅是一个编译系统,没有工程或项目的概念,复杂的C程序可以应用make/makefile构建工具来管理C程序的若干源文件。本文仅建立今包含一个源文件的C程序,不需要使用make/makefile构建工具,直接使用GCC编译即可。
建立HelloWorld.c文件
建议在home目录下建立存储HelloWorld.c源文件的目录,如helloworld目录:
进入helloworld目录,输入下面的命令:
在VI编辑器内,输入下面的内容并保存:
输入下面的命令对helloworld.c源文件执行编译和链接:
执行helloworld.out程序:

在MacOS系统使用GCC

MacOS系统的Command Line Tools软件包为终端用户提供了许多常用的工具,这些工具就包括了GCC编译系统。要安装Command Line Tools软件包,需要先安装XCode,XCode是研发苹果系列应用程序的集成开发环境,如开发基于iOS、iPadOS、watchOS等系统的应用程序。
登录App Store并搜索XCode,完成XCode的安装。然后进入MacOS终端,输入以下命令安装 Command Line Tools软件包:
xcode-select --install
安装完成后,就可以在MacOS终端使用GCC编译命令了。