参数
gcc文件类型约定
gcc常用选项
命令
链接库
函数库是一些头文件(.h) 和库文件(.so或 .a)的集合,在Linux下大多头文件的默认路径是/usr/include/
,而库文件默认路径在/usr/include/
,但并不是所有情况都是这样,当头文件和库文件在别的位置时,利用gcc编译需要指定所需要的头文件和库文件。
gcc通过搜索目录的办法查询所需要的文件,-I
选项可以向默认路径中添加新目录。
比如在home/name/include/
下编写了程序foo.c
,为了gcc能够找到,需要用如下命令:
gcc foo.c -I /home/name/include -o foo
同样,如果使用了不在默认路径的库文件,需要使用-L
选项添加库文件路径,比如:
gcc foo.c -L /home/name/lib -lfoo -o foo
上面例子中的-L
让gcc去链接库找libfoo.so'
库文件,linux下库文件命名时约定以lib
开头,所以在命令行中可以省去,直接使用-lfoo
即可。
静态链接和动态链接
Linux下库文件分为动态链接库(以.so结尾)和静态链接库(以.a结尾),如果指定使用静态链接库,编译时加上-static
选项。
例如下面编译命令:
gcc foo.c -L /home/name/lib -static -lfoo -o foo