gcc -fpic -shared cat.c -o libcat.so
-fpic是壓制警告
-shared是生成動態庫
cat.c是要編譯的檔案
-o是要生成的檔案的名稱
gcc -rdynamic -o main main.c -ldl
-rdynamic是生成可執行檔案
-o是生成的檔案的名稱
main.c是要編譯的檔案
-ldl可以理解為要生成乙個動態庫吧(這個不是太懂)
之後會在當前目錄下生成乙個main檔案
直接./main就可以執行了
首先寫了乙個cat.c
int add(int a,int b)
然後把cat.c編譯成乙個so庫
gcc -fpic -shared cat.c -o libcat.so
執行完之後會在當前路徑下生成乙個libcat.so檔案
在寫乙個main方法,這裡寫了乙個main.c
#include #include #include typedef int (*add)(int,int);
int main()
之後將main.c生成乙個可以執行的檔案main
gcc -rdynamic -o main main.c -ldl
執行之後會在當前路徑下生成乙個main檔案
直接./main就會列印:7,也就是呼叫了剛才那個so庫方法裡的add方法
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下NDK編譯so庫
2 隨便在哪個目錄直接解壓 3 配置系統環境變數 vim etc profile 在檔案末尾新增如下內容 export android ndk ndk路徑 export path and roid ndk android ndk androi dn d k 1 建立jni目錄 mkdir jni 2...
linux下將c 編譯成so,呼叫該so檔案
在其他資料上增加了過程中遇到的問題。so檔案為動態鏈結庫檔案,與windows下的dll檔案相當,linux下系統so檔案一般儲存在 usr lib中。下面就說明一下如何生成c 程式的so檔案,以及如何在c 程式中呼叫該so檔案 test.h ifdef cplusplus extern c int...