我試圖創建使用gcc
Ubuntu的共享庫我只是一個簡單的類(shared.h和shared.cpp)和一個客戶端使用它(main.cpp中)
這是我的makefile,我仍然無法讓程序編譯。GCC共享庫的問題
all:
#compile object(fPIC: creates position independent code)
gcc -fPIC -Wall -g -c shared.cpp
#compile shared library
gcc -shared -Wl,-soname,libshared.so.1 -o libshared.so.1.0.1 shared.o -lc
#link shared library
gcc -g -o main main.cpp -L. -lshared
- 我相信,第一行是正確
- 我不確定什麼是 「-lc」 一樣。我認爲它傳遞給鏈接器的東西?
我不想安裝庫,我只是想能夠從當前目錄鏈接它。我曾嘗試過:
export LD_LIBRARY_PATH=.
但它似乎沒有區別。一切都在當前目錄中。ERROR: /usr/bin/ld: cannot find -lshared
我怎麼讓編譯器檢查當前目錄爲我的圖書館嗎?
謝謝。它發現它,我得到一堆未定義的引用。所以我認爲這是因爲我只有libshared.so而不是libshared.so.1錯誤: /tmp/ccZrfhqj.o:在函數'__static_initialization_and_destruction_0(int,int)'中: –
@Xploit:由於您擁有正確的回答你爲什麼不接受它?你有0個被接受的答案(並且不是因爲你的問題沒有被正確回答)。 –
@Serge Dundich,該網站的新用戶 - 謝謝。 請注意任何有此問題的人:確保您使用的是g ++而不是gcc –