linux下命令行下编译c程序
-------------------------------------------
Linuxmine收集整理 作者:linux宝库 (http://www.linuxmine.com) 时间:2006-10-11
-------------------------------------------
C 是所有版本的UNIX上的系统语言.
C 在过去的二十年中有了很大的发展. 在80年代末期美国国家标准协会(American NationalStandards Institute)发布了一个被称为 ANSI C 的 C 语言标准.这更加保证了将来在不同平台上的 C 的一致性. 在80年代还出现了一种 C 的面向对象的扩展称为 C++.
Linux 上可用的 C 编译器是 GNU C 编译器, 它建立在自由软件基金会的编程许可证的基础上, 因此可以自由发布. 你能在 Linux 的发行光盘上找到它.
随 Slackware Linux 发行的 GNU C 编译器(GCC)是一个全功能的 ANSI C 兼容编译器. 如果你熟悉其他操作系统或硬件平台上的一种 C 编译器, 你将能很快地掌握 GCC. 这和java在命令行下
编译也很类似我们将在下面介绍如何使用 GCC 和一些 GCC 编译器最常用的选项.
格式 gcc [option] [sourcefilename]
gcc的选项十分繁多,大约有上百中,不过平时常用的不是非常多,我们将要介绍一些常用的选项:
最简单的是:gcc hello.c
默认的情况下将生成a.out的可执行性文件,你只需要在终端上输入./a.out就可以看到执行的结果.
如果你想指定生成目标文件的名字那么你可以加上 -o选项,命令如下:
gcc -o hello hello.c
gcc也允许你只编译源程序,这样可以只检查编译时刻的错误,有利也调试程序,用-c选项可以达到这个目的
命令如下:
gcc -c hello hello.c
结果生成了一个中间代码hello.o文件
编译选项告诉 GCC 在为 C 代码产生了汇编语言文件后停止编译. GCC 产生的汇编语言文件的缺省扩展名是 .s . -E 选项指示编译器仅对输入文件进行预处理. 当这个选项被使用时, 预处理器的输出被送到标准输出而不是储存在文件里.
之后你可以对上述中间代码进行链接运行,使用命令:
gcc -o hello.out hello.c
优 化 选 项
当你用 GCC 编译 C 代码时, 它会试着用最少的时间完成编译并且使编译后的代码易于调试. 易于调试意味着编译后的代码与源代码有同样的执行次序, 编译后的代码没有经过优化.有很多选项可用于告诉 GCC 在耗费更多编译时间和牺牲易调试性的基础上产生更小更快的可执行文件. 这些选项中最典型的是-O 和 -O2 选项.
-O 选项告诉 GCC 对源代码进行基本优
相关文档:
总览
用iptables -ADC 来指定链的规
则
,-A添加 -D删除 -C 修改
iptables - [RI] chain rule num rule-specification[option]
用iptables - RI 通过规则的顺序指定
iptables -D chain rule num[option]
删除指定规则
iptables -[LFZ] [chain][option]
用iptables -LFZ 链名 [选项]
iptables -[NX] chain
用 -NX ......
面对不断升级的内核,如何学习linux设备驱动
  ......
(加#的命令为必须在根用户权限下操作)
一、关机与重新启动
1)#init 0重启 #init 6关机(改变系统运行级别的方法)
2)#reboot重启 #halt关机(命令法)
3)#showdown -h +5 (5分钟后关机) #showdown -r +5(5分钟后重启)
二、常用目录操作命令
1)显示文件和目录:ls -a ......
设计一个linux下的deamon进程,关键只有几个:
1.fork两次。
2.fork第一次和第二次之间成为进程组头。
3.改变工作目录。
4.忽略信号。
5.设置读写掩码。
一下是一个从网络搜集到的例程,非常好的演示了上述要点,存此备忘。
#include
#include
#include
#include
void main(int argc, char ** argv)
{
tim ......
首先看下下面这段:
int main()
{
char *name = "fengkewei";
char name1[] = "fengkewei";
char *name2 = "fengkewei";
char *name3 = "woaifengkewei";
int i = 10;
int j = 10;
int k = 11;
return 0;
}
若您觉得它们应该都保存在内存中的一块地方,那请往下看。。。。
下面是编译器为各个变量分配的内存地 ......