2017-03-02 89 views
0

我鏈接我的應用程序時,有一個問題,ld找不到可用的庫:LD找不到可用的庫

/usr/bin/ld : could not find -lVtsUtils_0.1.5d 
/usr/bin/ld : could not find -lVtsCore_0.1.5d 
/usr/bin/ld : could not find -llibmysql 

的編譯行(通過make VERBOSE=1找到):

/usr/bin/c++ -g CMakeFiles/Dental.dir/main.cpp.o CMakeFiles/Dental.dir/qrc_myproject.cpp.o CMakeFiles/Dental.dir/Dental_automoc.cpp.o -o ../../../bin/debug/Dentald -L/home/naccyde/Projets/myproject/lib/linux -rdynamic /usr/lib64/libQt5Widgets.so.5.6.2 -lVtsUtils_0.1.5d -lVtsCore_0.1.5d -llibmysql /usr/lib64/libQt5Gui.so.5.6.2 /usr/lib64/libQt5Core.so.5.6.2 -Wl,-rpath,/home/naccyde/Projets/myproject/lib/linux 

ls -l /home/naccyde/Projets/myproject/lib/linux顯示:

-rwxrwxrwx. 1 naccyde naccyde 2067984 2 mars 17:34 VtsCore_0.1.5d.so 
-rwxrwxrwx. 1 naccyde naccyde 10984568 2 mars 17:34 VtsNavigation_0.1.5d.so 
-rwxrwxrwx. 1 naccyde naccyde 4760776 2 mars 17:34 VtsUtils_0.1.5d.so 

我不能取消說明爲什麼它不起作用。

回答

4

Linux(或所有POSIX系統)上的庫需要以前綴lib作爲前綴。因此,名爲VtsCore_0.1.5d的動態庫應該具有文件名libVtsCore_0.1.5d.so

適當重命名您的庫。或者將實際庫文件的完整路徑(例如/home/naccyde/Projets/myproject/lib/linux/VtsCore_0.1.5d.so)傳遞給鏈接器。