dra*_*vic 17 c++ unix linux shared-libraries
这是Linux编程书的引用:
% gcc -o app app.o -L. –ltest
假设两个libtest.a和libtest.so被available.Then链接器必须选择的图书馆之一,而不是other.The链接搜索每个目录(第那些指定的-L选项,然后将这些在标准目录).当链接器找到了一个包含目录无论是libtest.a或libtest.so,链接器将停止搜索目录.如果目录中只存在两个变体中的一个,则链接器会选择该变体.否则,链接器会选择共享库版本,除非您明确指示它.您可以使用该-static选项来请求静态存档.例如,libtest.a即使libtest.so共享库也可用,以下行将使用存档
 :  
% gcc -static -o app app.o -L. –ltest
因为如果链接器遇到包含libtest.a它的目录,则停止搜索并使用该静态库,如何强制链接器仅搜索共享库,而不是静态?
% gcc -o app app.o -L. libtest.so ?
Dmi*_*kov 19
如果您的链接器支持它,您可以-l在其表单中使用选项-l:filename(旧版本ld没有)
gcc -o app app.o -L. -l:libtest.so
Run Code Online (Sandbox Code Playgroud)
其他选项是直接使用文件名而不使用-l和-L
gcc -o app app.o /path/to/library/libtest.so
Run Code Online (Sandbox Code Playgroud)