链接我的应用程序时出现问题,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
我不明白为什么它不起作用。
最佳答案
Linux(或所有POSIX系统)上的库必须以lib
为前缀。因此,名为VtsCore_0.1.5d
的动态库应具有文件名libVtsCore_0.1.5d.so
。
适当地重命名您的库。或将实际库文件的完整路径(例如/home/naccyde/Projets/myproject/lib/linux/VtsCore_0.1.5d.so
)传递给链接器。
关于c++ - ld找不到可用的库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42561501/