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
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