1.編輯並輸入內容到test.cpp與test2.cpp
test.cpp
#include <stdio.h>
int func()
{
return 888;
}
test2.cpp
#include <stdio.h>
int func2()
{
return 999;
}
將test.cpp與test2.cpp編譯成目標文件:
g++ -c test.cpp test2.cpp
一次性生成目標文件 與靜態庫
g++ -c test.cpp test2.cpp && ar rcs libtest.a test.o test2.o
將生成 的test.o 與test2.o合併成 libtest.a靜態庫
下面將test.cpp與test2.cpp合併生成到libtest.so動態庫
g++ test.cpp test2.cpp -fPIC -shared -o libtest.so
編輯並添加內容到app.cpp與app2.cpp中
編譯app.cpp並鏈接靜態庫libtest.a 生成 可執行程序
g++ -o app app.cpp -L./ -ltest
./app運行程序 輸出 888 999
編譯app2.cpp並鏈接靜態庫libtest2.so 生成 可執行程序
因爲編譯器會自動先查找.so文件 ,沒找到 ,再查找 .a文件
爲了區分 示例 ,所以生成 一個libtest2.so來測試
g++ test.cpp test2.cpp -fPIC -shared -o libtest2.so
編譯生成app2:
g++ -o app2 app2.cpp -L./ -ltest2
LD_LIBRARY_PATH=./ ./app2運行輸出 888 999