Linux下GCC编程四个过程(1)
在Linux下进行C语言
编程,必然要采用GNU GCC来编译C源代码生成可执行程序。
一、GCC快速
入门
Gcc指令的一般格式为:Gcc [选项] 要编译的文件 [选项] [目标文件]
其中,目标文件可缺省,Gcc默认生成可执行的文件名为:编译文件.out
我们来看一下经典
入门程序"Hello World!"
# vi hello.c
#include <stdlib.h>
#include <stdio.h>
void main(void)
{
printf("hello world!\r\n");
}
用gcc编译成执行程序。
#gcc hello.c
该命令将hello.c直接生成最终二进制可执行程序a.out
这条命令隐含执行了(1)预处理、(2)汇编、(3)编译并(4)链接形成最终的二进制可执行程序。这里未指定输出文件,默认输出为a.out。
如何要指定最终二进制可执行程序名,那么用-o选项来指定名称。比如需要生成执行程序hello.exe
那么
#gcc hello.c -o hello.exe
二、GCC的命令剖析--四步走
从上面我们知道GCC编译源代码生成最终可执行的二进制程序,GCC后台隐含执行了四个阶段步骤。
GCC编译C源码有四个步骤:
预处理-----> 编译 ----> 汇编 ----> 链接
现在我们就用GCC的命令选项来逐个剖析GCC过程。
1)预处理(Pre-processing)
在该阶段,编译器将C源代码中的包含的头文件如stdio.h编译进来,用户可以使用gcc的选项”-E”进行查看。
用法:#gcc -E hello.c -o hello.i
作用:将hello.c预处理输出hello.i文件。
[root]# gcc -E hello.c -o hello.i
[root]# ls
hello.c hello.i
[root]# vi hello.i
# 1 "hello.c"
# 1 "<built-in>"
# 1 "<command line>"
# 1 "hello.c"
# 1 "/usr/include/stdlib.h" 1 3
# 25 "/usr/include/stdlib.h" 3
# 1 "/usr/include/features.h" 1 3
# 291 "/usr/include/features.h" 3
# 1 "/usr/include/sys/cdefs.h" 1 3
# 292 "/usr/include/features.h" 2 3
# 314 "/usr/include/features.h" 3
# 1 "/usr/include/gnu/stubs.h" 1 3
# 315 "/usr/include/features.h" 2 3
# 26 "/usr/include/stdlib.h" 2 3
# 3 "hello.c" 2
void main(void)
{
printf("hello world!\r\n");
}
相关文档:
在Linux
中通过locale
来设置程序运行的不同语言环境,locale
由ANSI C
提供支持。locale
的命名规则为<
语言>_<
地区>.<
字符集编码>
,如zh_CN.UTF-8
,zh
代表中文,CN
代表大陆地区,UTF-8
表示字符集。在locale
环境中,有一组变量,代表国际化环境中的不同设置:
1. & ......
在找GTK的开发文档,发现在 /usr/share/doc/libgtk2.0-doc/里有个 tutorial的目录,里边有个gtk-tutorial.devhelp的文件,于是试试有没有devhelp这个工具,原来真的有,而且已经安装过了!
于是用它来打开这个开发文档,非常好用。而且里边还有其他库的帮助文档呢! ......
PDO为何物
POD(PHP Data Object)扩展在PHP5中加入,PHP6中将默认识用PDO连接数据库,所有非PDO扩展将会在PHP6被从扩展中移除。该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。
我是配置在windows下做开发用的。
PDO的目标
提供一种轻型、清晰、方便的 API
统 ......
本不想写这些玩意儿,其实我并不喜欢它们,只不过没办法,谁叫我是靠这些家伙糊口的呢!
若干年前,我自认为很喜欢Linux;若干年后,我发现我当初是何等的天真。
恩,一分钱,一分货!我坚信这一点!所以我现在坚持用MS的Vista,正版的哦!
言归正传,前段时间因为工作,需要在Linux下操作鼠标,当然啦,肯定不会是在X-w ......