1、建立
math1.c,在命令列中輸入:nano math1. c
int add(int x, int y)
2、編譯生成共享庫libmath1.so
gcc -fpic -shared -olibmath1.so math1.c
3、建立測試
程式testmath.c,在命令列中輸入:
nano testmath. c
#include
int main()
4、編譯生成測試
程式testmath
gcc -otestmath -lmath1 testmath.c -l=./
5、執行測試程式,在命令列中輸入:./testmath
出現找不到共享庫的錯誤:
./testmath: error while loading shared libraries: libmath1.so: cannot open shared object file: no such file or directory
6、拷貝libmath1.so到linux系統預設的共享庫載入路徑(/lib或/usr/lib)
在命令列中輸入:sudo cp libmath1.so /usr/lib/
7、重新執行測試程式testmath
結果:10+18=28
關於gcc的編譯引數:
-fpic 生成與位置無關的**,這樣庫就可以在任何位置被連線和裝載
-shared 代表共享庫
-o 鏈結生成指定名字的庫或
程式-l 指定要鏈結的共享庫
-l 指定共享庫所在路徑
Linux上FFmpeg生成so庫
我用的是ubuntu做開發的,之前使用過centos7去編譯的 感覺太麻煩出錯了,從朋友那得知ubuntu和debian 是適用於開發的 1.cd home 切換到home 目錄 2.mkdir ndk在home目錄下新建資料夾 ndk 3.把linux版的ndk上傳到ubuntu伺服器上 4.cd...
linux 簡單呼叫so庫
1 動態庫生成 gcc fpic shared cat.c o libcat.so o是要生成的檔案的名稱 2 編譯指令直接鏈結呼叫 gcc main.c l.lcat o test l.表示鏈結的動態庫在本地資料夾 執行可執行檔案時,需要新增本地目錄到lib目錄,否則會報 cannot open ...
linux下構建 共享函式庫( so)
在linux上用c建立共享庫so 1 建立math1.c,在命令列中輸入 nano math1.c int add int x,int y 2 編譯生成共享庫libmath1.so gcc fpic shared olibmath1.so math1.c 3 建立測試程式testmath.c,在命令...