(转)Linux下编写C程序( GCC )(hello,world)
2011-04-05 20:39
204 查看
在windows下写C程序是一件很容易的事,装好Turbo C就可以了,相信各位学过编程的都十分了解Turbo C吧。特别是现在大学里人人忙考级的情况下,二级C语言大概成了每个人默认考过的等级考试吧。可是在linux下又如何写C程序呢?其实,linux下写 C也是很容易的。IDE的话用 eclipse 集成 CDT 模块就行了。当然这属于重量级的了,就如同VC++之于windows一样。那有没有像Turbo C那样的小工具呢,主要也就是用到它的编译功能。恩,这就是这次我们要说的 GCC 了。
根据 wikipedia (google)上的定义,GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是GNU toolchain的关键部分,亦是开放源代码的类Unix操作系统的标准编译器。
GCC跟Turbo C的处理过程大同小异,其由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。所以,基本上可以这么说,用过 Turbo C的,很容易就会习惯GCC了。
好了,现在我们来写个简单的程序吧。首先是安装GCC,如果你使用的是Ubuntu,则在终端中输入以下命令来安装GCC。
sudo apt-get install gcc(Ubuntu上一开始就已经安装好了,其他版本不知道)
安装好GCC就可以写程序了?别急,现在GCC 什么文件都还不能编译呢。还记得在Turbo C上我们不是还要设置头文件的路径吗?是的,我们需要安装这些头文件,这就是build- essential软件包。安装好这个包,系统就会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1- dev等一些必须的软件和头文件的库。我们可以在终端中输入下面命令来安装:
sudo apt-get install build-essential(直接在终端输入这个命令就可以了)
好了,环境搭建完毕,就让我们开始动手写程序吧。首先来个最经典的hello world热热身。用 gedit(一种文本模式的编辑器) 或者 vi (图形模式的文本编辑器)写下这个程序,并保存为hello.c。
#include <stdio.h>
int main()
{
printf( “Hello world!/n” );
return 0;
}
将文件保存为hello.c后,在终端中使用敲入以下命令来使用GCC对程序进行编译。
gcc hello.c -o hello
编译通过后,我们会在当前目录中看到hello文件,这就是编译后生成的可执行文件。好了,我们来运行一下它,来跟world打个招呼。
./hello
我们可以看到在终端中输出了”Hello world!”,这就说明我们的程序运行成功了。
最后,需要特别说明的是GCC中对于文件后缀的规定有点特殊,特别是C++源代码文件的后缀不是cpp,而是cc或cxx。
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
好了,发挥想象力尽情写程序吧!
根据 wikipedia (google)上的定义,GCC(GNU Compiler Collection,GNU编译器套装),是一套由GNU开发的编程语言编译器。它是GNU toolchain的关键部分,亦是开放源代码的类Unix操作系统的标准编译器。
GCC跟Turbo C的处理过程大同小异,其由C语言源代码文件生成可执行文件的过程不仅仅是编译的过程,而是要经历四个相互关联的步骤∶预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。所以,基本上可以这么说,用过 Turbo C的,很容易就会习惯GCC了。
好了,现在我们来写个简单的程序吧。首先是安装GCC,如果你使用的是Ubuntu,则在终端中输入以下命令来安装GCC。
sudo apt-get install gcc(Ubuntu上一开始就已经安装好了,其他版本不知道)
安装好GCC就可以写程序了?别急,现在GCC 什么文件都还不能编译呢。还记得在Turbo C上我们不是还要设置头文件的路径吗?是的,我们需要安装这些头文件,这就是build- essential软件包。安装好这个包,系统就会自动安装上g++,libc6-dev,linux-libc-dev,libstdc++6-4.1- dev等一些必须的软件和头文件的库。我们可以在终端中输入下面命令来安装:
sudo apt-get install build-essential(直接在终端输入这个命令就可以了)
好了,环境搭建完毕,就让我们开始动手写程序吧。首先来个最经典的hello world热热身。用 gedit(一种文本模式的编辑器) 或者 vi (图形模式的文本编辑器)写下这个程序,并保存为hello.c。
#include <stdio.h>
int main()
{
printf( “Hello world!/n” );
return 0;
}
将文件保存为hello.c后,在终端中使用敲入以下命令来使用GCC对程序进行编译。
gcc hello.c -o hello
编译通过后,我们会在当前目录中看到hello文件,这就是编译后生成的可执行文件。好了,我们来运行一下它,来跟world打个招呼。
./hello
我们可以看到在终端中输出了”Hello world!”,这就说明我们的程序运行成功了。
最后,需要特别说明的是GCC中对于文件后缀的规定有点特殊,特别是C++源代码文件的后缀不是cpp,而是cc或cxx。
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是已经预处理过的C源代码文件;
.ii为后缀的文件,是已经预处理过的C++源代码文件;
.m为后缀的文件,是Objective-C源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。
好了,发挥想象力尽情写程序吧!
相关文章推荐
- Linux下编写C程序( GCC )(hello,world)
- Linux下使用GCC编译并运行第一个helloworldC++程序
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- 各类语言编写的HelloWorld>程序
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”。
- Android学习笔记(第一篇)编写第一个程序Hello World+Activity
- Linux下编写C程序( GCC )
- 使用UDP协议编写一个网络程序,设置接收端程序的监听端口是8001,发送端发送的数据是“Hello, world”
- 【Linux】使用vim编写一个程序,gcc查看预处理、编译、汇编、链接过程
- 编写一个程序,该程序当输入Crtl+C时输出字符串"I got signal"。在其余的时间,该程序只是无限循环,每一秒输出一条"hello world"信息。
- Java自学笔记(第一天)安装Java8---配置运行环境---编写"hello world"程序---注释
- Objective-C学习笔记(三)——用Objective-C编写第一个程序:Hello,World!
- MiniUI快速入门教程(二)编写第一个MiniUI程序:Hello, world!
- apache module helloworld, Linux平台使用C编写网页 CGI helloword 实例
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出
- 结合"hello world"探讨gcc编译程序的过程
- 编写程序将"hello-NOworld"变成"hello-world"
- 编写程序将"hello-NOworld"变成"hello-world"
- 使用TCP协议编写一个网络程序,设置服务器端的监听端口是8002,当与客户端建立连接后,服务器端向客户端发送数据“Hello, world”,客户端收到数据后打印输出。