以下是使用静态库中的函数的两种方法,使用ar压缩(即libSOMTEHING.a): ld -Lpath / to / library -lname myapp.o -o result ld path / to / library / libname.a myapp.o -o …
在第一行中,在目录中的静态库(libname.a)之前搜索动态库(libname.so)。此外,还搜索标准lib路径的libname。*,而不仅仅是/ path / to / library。
来自“man ld”
在支持共享库的系统上,ld也可以搜索 libnamespec.a以外的文件。具体来说,在ELF和SunOS上 系统,ld将在目录中搜索一个名为的库 libnamespec.so在搜索名为libnamespec.a的文件之前。 (通过 约定,“。so”扩展名表示共享库。)
第二行强制链接器在path / to / lib处使用静态库。
如果没有构建动态库(libname.so),并且唯一可用的库是path / to / library / libname.a,那么这两行将生成相同的“结果”二进制文件。