荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: zzt (好好学习,天天向上), 信区: Linux
标  题: [转]GNU中的C编译器Gcc
发信站: BBS 荔园晨风站 (Mon Jan 24 17:21:19 2000), 转信

【 以下文字转载自 zzt 的信箱 】
【 原文由 zzt.bbs@bbs.zd.dhs.org 所发表 】
作者: fuse (保险丝) 站内: Linux
标题: [转]GNU中的C编译器Gcc
时间: Tue Dec 28 19:19:18 1999

转载自http://bricks.net.dlut.edu.cn/gnu/gcc.htm


                                                GNU中的C编译器Gcc


gcc使一个高效而强有力的C编译器.在这里我为初学者提供了
快速入门的一些描述.

a.c
#include <stdio.h>
main()
{
printf("Hello world!\n");
}

gcc a.c -o hello
hello
Hello world!

基本参数:
-c 只编译不连接
如:gcc a.c -c 只产生a.o

-o 设定输出文件名
如:gcc a.c -o hello

-s 产生汇编文件后停止
如:gcc a.c -s
产生a.s

-g 加入调试信息,为gdb准备

-l 设定要连接的库
如:gcc a.c -lfoo
连接libfoo.so或libfoo.a

缺省时,gcc优先连接动态库,实在找不到才连接静态库.
-static 强制连接静态库

-O1
-O2
-O3
进行优化,1 2 3表示不同的优化等级.
-O0
不进行优化

-W
产生警告信息,常用 -Wall 表示输出所有的警告信息.

-Dname
定义,相当于在C中使用#define name

-shared
编译产生共享库.
-fPIC
在编译共享库时作一些优化.

产生自己的共享库:
a.c
#include <stdio.h>
void pln(char *str)
{
printf("%s\n",str);
}

gcc -shared -fPIC a.c -o libmy.so
-----
也可以不加
b.c
extern viod pln(char *)
main()
{
pln("hello world");
}

gcc b.c -lmy
注意:缺省情况下gcc只在/etc/ld.so.conf中指定的目录下寻找库.

-Idir
也在dir下找头文件.
-Ldir
也在dir下找库文件.

经常会看到 -Wl option , 这是将option作为参数传给连接程序
,如option中有逗号,则分裂为多个参数传递.

                                [home][Gnu][Gnu Documents][Linux][Linux Documen
ts][About us]

?

--
   ★    万世留名我不希罕 倒不介意留下一些芳菲一些香
 ^|^   不染不沾不湿 不即不倚不忘   只想轻轻松松活一场
   〉        浮生独来独去独往 倒不介意  留下 一番  情意几番狂


--
※ Origin: 笑 书 亭 <bbs.zd.dhs.org>
◆ From: 210.32.151.168
--
※ 转载:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: 192.168.1.11]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店