链接程序和库指南

动态模式

动态模式是链接编辑器操作的缺省模式。指定 -d y 选项可以强制执行此模式;但是只要不使用 -d n 选项,则隐含表示为使用此模式。

在此模式下,可以接受的输入形式包括可重定位目标文件、共享库和归档库。使用 -l 选项可以进行目录搜索,即搜索每个目录以查找共享库。如果未找到任何共享库,则会搜索同一目录来查找归档库。使用 -B static 选项可以强制仅对归档库执行搜索。 请参见同时链接共享库和归档

创建共享库

以下示例结合了以上几点:


$ cc -c -o foo.o -K pic -xregs=no%appl foo.c

$ cc -M mapfile -G -o libfoo.so.1 -z text -z defs -B direct -z lazyload \

-z combreloc -z ignore -R /home/lib foo.o -L. -lbar -lc

以下示例结合了以上几点:


$ cc -M mapfile -G -o libfoo.so.1 -z text -z defs -B direct -z lazyload \

-z combreloc -z ignore -R /home/lib -h libfoo.so.1 foo.o -L. -lbar -lc

$ ln -s libfoo.so.1 libfoo.so

创建动态可执行文件

以下示例结合了以上几点:


$ cc -o prog -R /home/lib -z ignore -z lazyload -B direct -L. \

-lfoo file1.o file2.o file3.o .....