编译器cc的使用
程序员文章站
2024-02-18 12:07:40
...
编辑器gcc 是GNU Compiler Collection,原名为Gun C语言编译器,因为它原本只能处理C语言,但gcc很快地扩展,包含很多编译器(C、C++、Objective-C、Ada、Fortran、 Java),可以说gcc是GNU编译器集合。
1. cc选项
正常编译程序,需要提供源文件、头文件、库文件、目标文件、宏定义和编译选项等至少五大块信息。
1、源文件
以 “.c” 为扩展名,待编译的C程序,就是源文件。它是CC命令的主题,如同上例中的first.c。源文件可以有多个,但是不能同时具有两个以上的main()函数。
2、头文件
除了在当前目录下查找“`#include " "”中的文件外,通知头文件所在目录的方式是使用“- I”选项。
cc -I/usr/include -I ./ first.c
3、库文件
在UNIX中,静态库一般是以lib*.a
的形式存在,编译时需要“-L
”选项提供静态库查找目录,“-l”选项标识静态库名称。
cc -L/usr/lib -llibcurses.a first.c
或者
cc -L/usr/lib -lcurses first.c
链接命名遵循“lib*.a
”规则的静态库时,可以采用缩写“-l
*”的模式。
4、目标文件
编译后产生的可执行程序名默认为“a.out
”,当需要更改时可选用“-o
”选项。
5、宏定义
类似于在代码中使用“define
”定义宏,在编译时可以通过“-D
”选项直接定义宏。
cc -DUNIX first.c
cc -DDEBUGLOG='"/usr/log/file.log"' first.c
6、编译选项
选项 | 描述 | 实践应用 |
---|---|---|
-c | 只编译,不链接可执行文件 | 设计静态库 |
-O | 优化程序 | 编译发布版产品 |
-g | 生成调试信息 | 调试程序 |