linux生成so
1. linux下如何將多個.c文件生成.so文件
頭文件只是在開發編譯的時候才會用到,生成動態庫的時候記得在gcc編譯的時加上-fPIC參數
2. linux中把.c的文件編譯成.so
就跟用VS編譯dll或者lib文件差不多,把代碼編譯完成以後,命名為相應的後綴就好了。
例如:
gcc -c -fPIC libst.c
生成 libst.o
然後
gcc -shared -fPIC -o libst.so libst.o
生成 libst.so 動態鏈接庫
把libst.so拷貝到系統默認庫目錄下,比如 /lib, /usr/lib 下
假定有 test.c 要引用這個庫
gcc -lst -o test test.c
然後就可以了
假如不能把libst.so拷貝到默認庫目錄下,比方說放在了
/home/aaa/lib 下
那麼就用這樣的語句來編譯test.c
gcc -L/home/aaa/lib -lst -Wl,-rpath=/home/aaa/lib -o test test.c
3. linux 怎麼編譯.so文件
.so是linux用的 所以 要生成so 需要用gcc 和生成可執行文件類似,只是增加一些編譯選項 命令如下 gcc SOURCE_FILES -fPIC -shared -o TARGET SOURCE_FILES可以是.c文件,也可以是經過-c編譯出來的.o文件 TARGET為so文件。
4. Linux .so庫的使用
新建一個sort.c文件,寫一個最簡單的排序
使用 gcc -o libsort.so -fPIC -shared sort.c 產生libsort.so庫。
.so庫有兩種調用方法:
新建main.c文件:
使用命令 gcc -o main main.c -lsort -L. 編譯。
新建main2.c文件:
使用命令 gcc -o main2 main2.c -ldl 編譯。動態載入.so庫的話需要-ldl。
運行./main2後輸出遞增序列,調用成功。
5. Linux下如何將多個.c文件生成.so文件
根據相應的頭文件、和鏈接使用的庫文件,編譯鏈接後,即是可以使用該.so文件了
~~~~~~~
6. Linux c++開發.so文件的使用
假設在linux上用gcc編譯程序,需要用下列編譯選項生成.so文件:
gcc -fPIC -shared
.so 文件安裝一般是在/usr/lib或者/usr/local/lib下,安裝後不需要絕對路徑即可使用。當然你也可以安裝到工程文件夾下面,不過很少有這么做的。使用時只需要dlopen()函數打開這個庫,用dlsym()函數將動態庫的函數體載入進來;同樣已載入的動態函數庫可以用dlclose()關閉。
詳細使用方法網路搜dlopen 即可。