gcc简单命令记录

来源:互联网 发布:免费的fq软件 编辑:程序博客网 时间:2024/06/05 20:46
CC编译程序过程分四个阶段1. 预处理(Pre-Processing)2. 编译(Compiling)3. 汇编(Assembling)4. 链接(Linking).简单编译命令我们以Hello world程序来开始我们的学习.代码如下:/* hello.c */#include <stdio.h>int main(void){printf ("Hello world!\n");r  eturn 0;}1. 执行如下命令:$ gcc -o hello hello.c输出: Hello,world!2. 我们也可以分步编译如下:(1) $ gcc -E hello.c -o hello.i  //预处理结束//这时候你看一下hello.i ,可以看到插进去了很多东西.(2) $ gcc -S hello.i//生成汇编代码后结束(3) $ gcc -c hello.c或者:$ gcc -c hello.c -o hello.o或者:$ gcc -c hello.i -o hello.o//编译结束//生成 hello.o文件(4) $ gcc hello.o -o hello.o或者:$ gcc -o hello hello.c//链接完毕,生成可执行代码3. 我们可以把几个文件一同编译生成同一个可执行文件.比如:一个工程有main.c foo.c def.c生成foo的可执行文件.编译命令如下:$ gcc -c main.c foo.c def.c -o foo或者:$ gcc -o foo main.c foo.c def.c.库依赖函数库是一些头文件(.h)和库文件(.so或者.a)的集合.Linux下的大多数函数都默认将头文件放到/usr/include/目录下,而库文件则放到/usr/lib/目录下,但并非绝对如此.因此GCC设有添加头文件和库文件的编译选项开关.1. 添加头文件:-I例如在/home/work/include/目录下有编译foo.c所需头文件def.h,为了让GCC能找到它们,就需要使用-I选项:$ gcc foo.c -I /home/work/include/def.h -o foo2. 添加库文件:-L例如在/home/work/lib/目录下有链接所需库文件libdef.so,为了让GCC能找到它们,就需要使用-L选项:$ gcc foo.c -L /home/work/lib -ldef.a -o foo说明:-l选项指示GCC去连接库文件libdef.so.Linux下的库文件命名有一个约定,即库文件以lib三个字母开头,因为所有的库文件都遵循这个约定,故在用-l选项指定链接的库文件名时可以省去lib三个字母.[题外语]Linux下的库文件分为动态链接库(.so文件)和静态链接库(.a文件).GCC默认为动态库优先,若想在动态库和静态库同时存在的时候链接静态库需要指明为-static选项.比如上例中如还有一个libdef.a而你想链接libdef.a时候命令如下:$ gcc foo.c -L /home/work/lib -static -ldef.a -o foo
0 0
原创粉丝点击