1>首先生成目標文件,但是此時要加編譯器選項-fpic和鏈接器選項-shared,
gcc-fpic-cadd.c
gcc-fpic-csub.c
生成中間文件add.o和sub.o
2>其次生成動態庫
gcc-shared–olibtiger.soadd.osub.o
生成動態庫libtiger.so,libtiger.so就是我們生成的目標動態庫。我們以后使用動態庫和main.c程序生成可執行程序
說明:
以上兩部也可以合成一步搞定:
gcc-fpic-sharedadd.csub.c-olibtiger.so
2.使用動態鏈接庫
在編譯程序時,使用動態鏈接庫和靜態庫是一致的,使用”-l庫名”的方式,在生成可執行文件的時候會鏈接庫文件。
1>使用命令:
gcc-omainmain.c-L./-ltiger
2>-L指定動態鏈接庫的路勁,-ldtiger鏈接庫函數tiger。-ltiger是動態庫的調用規則。Linux系統下的動態庫命名方式是lib*.so,而在鏈接時表示位-l*,*是自己命名的庫名。
3>但是程序會提示如下錯誤
errorwhileloadingsharedlibraries:libtiger.so:cannotopensharedobjectfile:Nosuchfileordirect