0
我忙於編譯和使用以下使文件編譯動態鏈接庫中的C++與運行路徑問題
driver.so:driver.cpp
g++ -c driver.cpp -o driver.so
g++ -L/tokenlib/libtokenlib.so driver.so -o linked
鏈接C++程序,但我得到的錯誤
g++ -c driver.cpp -o driver.so
g++ -L/tokenlib/libtokenlib.so driver.so -o linked
driver.so: In function `main':
driver.cpp:(.text+0x9): undefined reference to `tokenlib::acquire_token()'
collect2: error: ld returned 1 exit status
make: *** [driver.so] Error 1
和我的文件層次結構是
/root
makefile
driver.cpp
/tokenlib
libtokenlib.so
有人告訴我,添加-Wl,-rpath =/tokenlib到我的G ++竟被arguements d解決問題,所以我試圖這樣
driver.so:driver.cpp
g++ -c driver.cpp -o driver.so -Wl,-rpath=./tokenlib
g++ -L/tokenlib/libtokenlib.so driver.so -o linked -Wl,-rpath=./tokenlib
但它仍然無法正常工作。
我一個完整的新手和任何幫助,將不勝感激。
'-L/tokenlib/libtokenlib.so'應指向一個路徑,而不是一個文件? –
不幸的是,這似乎給了我同樣的錯誤。我改成了G ++ -L/tokenlib driver.so -o連接,或者如果我嘗試的g ++ -L/tokenlib tokenlib.so driver.so -o連接我得到G ++:錯誤:tokenlib.so:沒有這樣的文件或目錄 – Gottfried