全面闡述Linux動態庫的隱式調用
十多年Linux的發展,Linux已經越來越接近微軟,你了解Linux系統么?你是Linux系統的應用者么?這里為你講解inux動態庫的隱式調用,為你在學習Linux動態庫的隱式調用時起一定的作用。
隱式調用的含義是代碼里不出現庫文件名,就是說這個代碼和
調用靜態庫的代碼是類似的。
1、編寫測試文件
- //main.c 測試動態庫隱式調用的程序
- #include "myalib.h" //要把函數的頭文件包含進來,否則編譯時會報錯
- int main(int argc,char* argv[])
- {
- test();
- return 0;
- }
2、 編譯測試程序,與靜態庫類似,要把頭文件的路徑加到-I參數里面
gcc -I /root/exercise -o main.o -c main.c
現在生成了一個main.o文件
3、連接生成測試程序
gcc -o main -L/root/exercise main.o -ltest
現在生成了一個main文件
4、執行測試程序
./main
此時出現提示
./main: error while loading shared libraries: libtest.so: cannot open shared object file: No such file or directory。
這個原因就是程序運行時并不知道動態庫所在的路徑,因此自然找不到。以上就是Linux動態庫的隱式調用的講解。
【編輯推薦】