用GCC开发linux应用程序(经典)
用GCC开发linux应用程序(经典)
2009年11月01日 星期日 23:58
作为自由软件的旗舰项目,Richard Stallman 在十多年前刚开始写作 GCC 的时候,还只是把它当作仅仅一个 C程序语言的编译器;GCC 的意思也只是 GNU C Compiler 而已。经过了这么多年的发展,GCC 已经不仅仅能支持 C语言;它现在还支持 Ada 语言、C++ 语言、Java 语言、Objective C 语言、Pascal语言、COBOL语言,以及支持函数式编程和逻辑编程的 Mercury 语言,等等。而 GCC 也不再单只是 GNU C语言编译器的意思了,而是变成了 GNU Compiler Collection 也即是 GNU 编译器家族的意思了。另一方面,说到 GCC
对于操作系统平台及硬件平台支持,概括起来就是一句话:无所不在。
1 程序编译过程
GCC是CUI(命令行交互界面)程序,这让许多从Windows走出来
Guier们感到恐惧。实际上它也有许多前端窗口界面,Windows下有Dev
C++,Linux下譬如KDevelopment,但既然选择了GCC还是将CUL进行到底吧,没有难与不难的问题,只有做与不做的问题!
下面基于一个具体而微的程序,讨论GCC的使用。示例程序如下:
//test.c#include int main(void){ printf("Hello World!\n"); return 0;}
这个程序,一步到位的编译指令是:
gcc test.c -o test
输出的可执行文件名为test,Windows用户可能会感到奇怪,可执行文件明怎么没有.exe扩展名呢?Linux系统中,文件类型并非以扩展名识别的!
实质上,上述编译过程是分为四个阶段进行的,即预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编 (Assembly)和连接(Linking)。
1.1 预处理 运行预处理命令:
gcc -E test.c -o test.i 或 gcc -E test.c
可
以输出test.i文件中存放着test.c经预处理之后的代码。打开test.i文件,看一看,就明白了。后面那条指令,是直接在命令行窗口中输出预处
理后的代码,而不是以文件作为输出设备。gcc的-E选项,可以让编译器在预处理后停止,并输出预处理结果。在本例中,预处理结果就是将stdio.h
文件中的内容插入到test.c中了。
gcc的-o选项,用于输出处理结果到文件中。
1.2 编译为汇编代码 预处理之后,可直接对生成的test.i文件编译,生成汇编代码:
gcc -S test.i -o test.s
gcc的-S选项,表示在程序编译期间,在生成汇编代码后,停止,-o输出汇编代码文件。
生成的汇编代码如下:
.file "test.c" .section .rodata .align 4.LC0: .string "Hello World,Linu
相关文档:
例一:发送Signaling Packet:
Signaling Command是2个Bluetooth实体之间的L2CAP层命令传输。所以得Signaling Command使用CID 0x0001.
多个Command可以在一个C-frame(control frame)中发送。
如果要直接发送Signaling Command.需要建立SOCK_RAW类型的L2CAP连接Socket。这样才有机会自己填充Command Code,Identi ......
1. 系统配置过程
2.1. oracle安装条件检查
2.1.1. 硬件检查
检查硬件情况是否符合oracle 10g 的安装要求。以root登录系统,用下表命令输出的值应大于或等于建议值。
检查项目
命令 ......
Redhat5下利用yum安装SVN客户端
由于Redhat5自带的SVN的版本是1.4.1的,比较老,不能读取SVN1.5的库,所有要更新:
直接运行:yum update subversion
会抱错:
http://ftp.sjtu.edu.cn/centos/5/updates/i386/repodata/repomd.xml: [Errno 14] HTTP Error 403: Forbidden
将repo地址改称USTC(科大的),
......
转自本人个人网站【PHP探路者 http://www.phpwell.com
】
原文地址 http://www.phpwell.com/?p=43
公司内的一台测试服务器原本只是放在公司内网上使用,现需要将测试环境置于Internet上,
以便于客户即时了解项目进展情况。为Linux系统增添一块网卡的过程记录如下:
步骤一:将一块新 ......
如果你正在为你的linux
操作系统寻找免费而又够酷够炫的图形设计软件,你就来对地方了!这一次,我们将为你介绍在linux
操作系统7个应用广泛而且免费的3D图形设计软件。
1、Blender
【点击下载
Blender
】
Blender是一个自由、开源的3D模型创作 ......