so檔案是Linux下的程式函式庫,即編譯好的可以供其他程式使用的程式碼和資料。
1、so檔案就跟.dll檔案差不多。
2、一般來說,so檔案就是常說的動態連結庫, 都是C或C++編譯出來的。與Java比較它通常是用的Class檔案(位元組碼)。
3、Linux下的so檔案時不能直接執行的,一般來講,.so檔案稱為共享庫。
4、so檔案使用方法
(1)動態庫的編譯。這裡有一個頭檔案:so_test.h,三個.c檔案:test_a.c、test_b.c、test_c.c,我們將這幾個檔案編譯成一個動態庫:libtest.so。
命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so 不用該標誌外部程式無法連線。相當於一個可執行檔案。
(2)動態庫的連結
這裡有個程式原始檔 test.c 與動態庫 libtest.so 連結生成執行檔案 test:
命令:$ gcc test.c -L. -ltest -o test
命令:$ ldd test執行test,可以看到它是如何呼叫動態庫中的函式的。
so檔案是Linux下的程式函式庫,即編譯好的可以供其他程式使用的程式碼和資料。
1、so檔案就跟.dll檔案差不多。
2、一般來說,so檔案就是常說的動態連結庫, 都是C或C++編譯出來的。與Java比較它通常是用的Class檔案(位元組碼)。
3、Linux下的so檔案時不能直接執行的,一般來講,.so檔案稱為共享庫。
4、so檔案使用方法
(1)動態庫的編譯。這裡有一個頭檔案:so_test.h,三個.c檔案:test_a.c、test_b.c、test_c.c,我們將這幾個檔案編譯成一個動態庫:libtest.so。
命令:$ gcc test_a.c test_b.c test_c.c -fPIC -shared -o libtest.so 不用該標誌外部程式無法連線。相當於一個可執行檔案。
(2)動態庫的連結
這裡有個程式原始檔 test.c 與動態庫 libtest.so 連結生成執行檔案 test:
命令:$ gcc test.c -L. -ltest -o test
命令:$ ldd test執行test,可以看到它是如何呼叫動態庫中的函式的。