Linux下簡單編譯so庫,呼叫另乙個so庫的方法

2021-08-07 12:35:02 字數 792 閱讀 8113

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