例如,如果已经在/home/fred/include 下保存了自定义的头文件,那么为了让gcc能够找到它们,可按下面的例子使用-I选项:
$gcc
myapp.c -I /home/fred/include -o
myapp
-L选项对库文件起的作用和-I选项告诉gcc把DIRNAME添加到库文件搜索路径里,要保证DIRNAME比标准位置先被搜索.
假设读者需要测试一个新的编程库libnew.so,当前它保存在/home/fred/lib下(.so是共享库文件的标准扩展名).为了链接库文件,gcc命令行应与下面类似:
$gcc
myapp.c -L/home/fred/lib -lnew -o
myapp
-L/home/fred/lib结构让gcc先在/home/fred/lib下查找库文件,然后再到默认的库文件搜索路径下进行查找.-l选项使得链
接程序使用指定的函数库中的目标代码,也就是本例中的libnew.so.把函数库命名为lib{名字}是UNIX的约定,与许多其他编译器一样,gcc
也遵循此约定.如果忘了使用-l选项,则与库的链接将失败,并且gcc产生错误,说明程序中引用了未定义的函数名.
默认情况下,gcc使用共享库进行链接,所以在需要链接静态库时必须使用-static选项来保证只使用静态库.
$gcc
cursesapp.c -lncurses -static -o
cursesapp
在链接静态库时,可执行程序的大小比链接共享库要达很多.使用共享库时,程序所使用的代码是在运行时动态链接,而不是在编译时静态链接,因此,如果所需要的共享库没有在用户系统中安装,运行就会失败.