QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3028|回复: 14

读书笔记之一---gcc的一些重要参数

[复制链接]
发表于 2004-8-12 10:31:37 | 显示全部楼层 |阅读模式
这两天在家无聊,在超星上看一本有关linux编程 的书,做一些读书笔记了,希望对大家有帮助了:)

        gcc的一些重要参数
1. -I 指定头文件搜索路径(I 表include)
    如 $gcc -c hello.c -o hello.o -I/usr/include
2.-L  指定要连接的库所在的目录
   -l 指定要连接的库的名字
        如$gcc main.o -L/usr/lib -lqt -o hello
3. -D 定义宏(D-define)
     -D定义宏有两种情况,一种是-DMACRO 相当于程序中使用#define MACRO 另外可以-DMACRO=A 相当于程序中使用#define MACRO A 这只是一个编绎参数,在连接时没有意义
如: $gcc -c hello.c -o hello.o -DDEBUG
上面为hello.c定义了一个DEBUG宏,某些情况下使用-D 代替直接在文件中使用#define,也是为了避免修改源代码双。例如一个程序希望在开发调试的时候能打印出调试信息,而正式发布的时候就不用打印了,而且发布前不用修改源代码双。可以这样
   #ifdefine DEBUG
        printf("debug message\n");
   #endif
对于这段代码,平时调试的时候就加上-DDEBUG 发布时不用-D选项
    与之对应的是-UMACRO参数,相当于#undef MACRO,取消宏定义

4. -g 生成调试信息
   -g生成调试信息,这对使用gdb进行调试是必须的。带有调试信息的文件要比普通文件要大,但不影响运行,可以用strip命令除于其中的调试信息

5. -c指于gcc只进行编绎,不连接

6. -ansi 指示gcc只支持ansi c标准语法

7. -o 指定输出文件名

8. -O 指定优化处理
    -O0不优化 -O1或-O 一级优化 -O2 二级优化...-O3,-O4
    级别越高,,代码越优,编绎时间越长。

9. -m486 针对特定的目标计算机进行优化,默认是386

10. -w  关闭编译器警告信息
发表于 2004-8-12 10:56:37 | 显示全部楼层
有人看,继续帖。
回复

使用道具 举报

发表于 2004-8-12 12:59:14 | 显示全部楼层
我在看。
回复

使用道具 举报

 楼主| 发表于 2004-8-12 13:25:16 | 显示全部楼层
谢谢鼓励:)我一定会把我看到的,想到的,觉得对大家有帮助的写出来。
回复

使用道具 举报

发表于 2004-8-13 16:52:26 | 显示全部楼层
這樣看比看書易吸收! :-)
回复

使用道具 举报

 楼主| 发表于 2004-8-13 17:59:28 | 显示全部楼层
可怜我这个看书人:) 一边在电脑上看超星,还在在电脑上打一篇

你们可知道我最讨厌windows
可以为了看超星,我只能忍辱负重呀
回复

使用道具 举报

发表于 2004-8-14 22:47:02 | 显示全部楼层
古时还有凿壁借光、悬梁刺股的呢。
回复

使用道具 举报

发表于 2004-8-15 16:25:43 | 显示全部楼层
好样的,小白我会好好看的
回复

使用道具 举报

发表于 2004-9-7 12:52:58 | 显示全部楼层
举双手支持!!!
回复

使用道具 举报

发表于 2004-9-8 15:33:23 | 显示全部楼层
感谢作者的笔记,省了不少事
回复

使用道具 举报

发表于 2004-9-12 22:07:13 | 显示全部楼层
我推荐一本出学者可用的书:
《LINUX & UINX程序开发基础教程》(美)Sarwar, Al-Saqabi著;
英宇,姚锋译;清华大学出版社出版
回复

使用道具 举报

发表于 2004-10-21 14:59:18 | 显示全部楼层
多谢共享出来,你们的帮助让我们成长
回复

使用道具 举报

发表于 2004-10-27 14:13:32 | 显示全部楼层
$gcc main.o -L/usr/lib -lqt -o hello

请教楼主,这段代码的空格没有少吧
回复

使用道具 举报

 楼主| 发表于 2004-10-28 00:05:50 | 显示全部楼层
有什么问题吗??
回复

使用道具 举报

发表于 2004-10-28 10:26:16 | 显示全部楼层
[quote:532f7d874f="51photoshop"]$gcc main.o -L/usr/lib -lqt -o hello

请教楼主,这段代码的空格没有少吧[/quote]

没有少
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-7 05:37 , Processed in 0.064130 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表