2015-05-24 2 views
2

EDIT: Явно ~ не работает здесь и только в оболочке, замените ~ на «$ HOME», и он должен работать, спасибо всем, кто ответил.ld не могут найти библиотеки, хотя они существуют

Попытка скомпилировать проект здесь, но, похоже, он не может найти библиотеки, даже если они существуют, вот вывод моей строки и доказательство существования библиотек.

[email protected] ~/Car $ g++ Car.cpp -I~/git/robidouille/raspicam_cv -L~/git/robidouille/raspicam_cv -lraspicamcv -L~/git/userland/build/lib -lmmal_core -lmmal -lmmal_util -lvcos -lbcm_host -I/usr/include/opencv -lopencv_highgui -lopencv_core -lopencv_video -lopencv_imgproc -lpthread -lm 
/usr/bin/ld: cannot find -lraspicamcv 
/usr/bin/ld: cannot find -lmmal_core 
/usr/bin/ld: cannot find -lmmal 
/usr/bin/ld: cannot find -lmmal_util 
/usr/bin/ld: cannot find -lvcos 
/usr/bin/ld: cannot find -lbcm_host 
collect2: ld returned 1 exit status 
[email protected] ~/Car $ find ~/ -name libraspicamcv.so 
/home/pi/git/robidouille/raspicam_cv/libraspicamcv.so 
[email protected] ~/Car $ find ~/ -name libmmal_core.so 
/home/pi/git/userland/build/lib/libmmal_core.so 
[email protected] ~/Car $ find ~/ -name libmmal.so 
/home/pi/git/userland/build/lib/libmmal.so 
[email protected] ~/Car $ 

EDIT: Пробовал делать

ld -L~/git/userland/build/lib -lmmal_core --verbose 

и он дал мне

attempt to open ~/git/userland/build/lib/libmmal_core.so failed 

но ~/мерзавец/пользовательские программы/строить/Библиотека/libmmal_core.so делает Infact существует, поэтому для некоторых причина, по-видимому, не может открыть файл, пока он существует.

+1

просто догадаться, но я думаю, что ~ может вызвать проблему – RedAgito

ответ

5

Расширение «~» в вашем домашнем каталоге является особенностью оболочки, и оно не расширяется «внутри» параметра, такого как -I~/git/robidouille/raspicam_cv.

Когда компоновщик ищет библиотеку, он не спрашивает вашу оболочку, где она находится, - она ​​пытается найти буквенный путь «~/git/robidouille/raspicam_cv», которого не существует.

Замените "~" на "$ HOME", который будет быть расширена оболочкой.

+0

О, это сработало, спасибо! Не знал, что ~ был только частью оболочки и не работал внутри параметров. – Matthew

Смежные вопросы