[Linux] 在 Linux 上建立動態函式庫 .so

[Linux] 在 Linux 上建立動態函式庫 .so

最近雖然比較常在 Linux 上寫 python 程式了,

但對於在 Linux 上寫 C++ 的程式還是比較陌生,尤其是要建立動態函式庫 .so,

更是還沒有嘗試過…

因為專案的關係,今天就來試試了~

也找到了一篇文章來參考~~

 

基本上建立 .so 的話,可以用 g++ -shared -fPIC 選項來建立,

因此下面先寫一個 Makefile,

裡面包含了一個 libxxx.so,另外還要準備一個測試程式 testlibxxx.out。

 

Makefile

all: libxxx.so testlibxxx.out

libxxx.so:
    g++ shared fPIC o libxxx.so xxx.cpp
   
testlibxxx.out:
    g++ o testlibxxx.out testlibxxx.cpp libxxx.so
   
clean:
    rm rf *.so *.out
   

 

libxxx.cpp 

#include

void xxx_for_test()
{
    printf(“test\n);
}
 

 

testlibxxx.cpp

void xxx_for_test();

int main()
{
    xxx_for_test();
    return 0;
}
 

 

編譯後就會產生我們要的函式庫 libxxx.so 以及測試程式 testlibxxx.out,

執行的話,要指定函式庫所在的路徑就行囉~~(像如果 testlibxxx.out 和 libxxx.so 放在目前目錄下,就用 .) 

LD_LIBRARY_PATH=. ./testlibxxx.out

 

 

 

 

//
//

(本頁面已被瀏覽過 143 次)

發表迴響

你的電子郵件位址並不會被公開。

This site uses Akismet to reduce spam. Learn how your comment data is processed.