GCC命令
gcc使用笔记
gcc命令
-o
:允许用户指定输出文件名
-g
:指明编译程序在编译的输出中应产生调试信息.这个调试信息使源代码和变量名引用在调试程序中或者当程序异常退出后在分析core文件时可被使用
-E
:让编译器在预处理后停止,并输出预处理结果,而不实际编译代码.在查看C预处理伪指令和C宏时,这是很有用的.可能的编译输出可重新定向到一个文件,然后用编辑程序来分析:$cc -E hello.c >cpp.out 或者 $cc -E hello.c -o cpp.out
-c
:编译产生目标文件(*.obj)而不链接成可执行文件,当编译几个独立的模块,而待以后由链接程序把它们链接在一起时,就可以使用这个选项,如:gcc -c test.c -o test.o
-Wall
:gcc有一些编译选项能够产生有用的警告信息,这些选项大多以-W开头,其中最有价值的当数-Wall了,使用它能够使GCC产生尽可能多的警告信息,例如:$gcc -Wall hello.c
-I
:可指定查找include文件的其他位置.例如,如果有些include文件位于比较特殊的地方,比如/usr/local/include,就可以增加此选项如下: $cc -c -I/usr/local/include -I/opt/include hello.c 此时目录搜索会按给出的次序进行.
-L
:指定连接库的搜索目录,-l(小写L)指定连接库的名字,例如:$gcc main.o -L/usr/lib -lqt -o hello 上面的命令把目标文件main.o与库qt相连接,连接时会到/usr/lib查找这个库文件.也就是说-L与-l一般要成对出现.
Linux下的库文件分为两大类分别是动态链接库(通常以.so结尾)和静态链接库(通常以.a结尾),二者的区别仅在于程序执行时所需的代码是在运行时动态加载的,还是在编译时静态加载的。
cc与gcc的区别和联系
首先,如果讨论范围在Unix和Linux之间,那么cc和gcc不是同一个东西。cc来自于Unix的c语言编译器,是 c compiler 的缩写。gcc来自Linux世界,是GNU compiler collection 的缩写,注意这是一个编译器集合,不仅仅是c或c++。
其次, 如果讨论范围仅限于Linux,我们可以认为它们是一样的,在Linux下调用cc时,其实际上并不指向unix的cc编译器,而是指向了gcc,也就是说cc是gcc的一个链接(快捷方式)。
上一篇 GDB命令
下一篇 Lua
页面信息
location:
protocol
: host
: hostname
: origin
: pathname
: href
: document:
referrer
: navigator:
platform
: userAgent
: