2014-10-23 5 views
1

Я пытаюсь использовать библиотеку rrdtools в программе C под Raspbian (вариант Debian для малины Pi). Компоновщик продолжает жаловаться, что он не может найти библиотеку RRD:ld не удалось найти librrd под Raspbian

[email protected] ~/work/reader $ gcc -o reader -lwiringPi -lrrd *.c      
/usr/bin/ld: cannot find -lrrd               
collect2: ld returned 1 exit status 

библиотека, кажется, где оно должно быть:

[email protected] ~/work/reader $ ll /usr/lib/librrd.* 
lrwxrwxrwx 1 root root  15 Sep 4 2012 /usr/lib/librrd.so.4 -> librrd.so.4.2.0 
-rw-r--r-- 1 root root 327224 Sep 4 2012 /usr/lib/librrd.so.4.2.0 

Я также связать библиотеку wiringPi, которую он находит без проблем:

[email protected] ~/work/reader $ ll /usr/lib/libwiring* 
lrwxrwxrwx 1 root root 36 Sep 25 14:50 /usr/lib/libwiringPiDev.so -> /usr/local/lib/libwiringPiDev.so.2.0 
lrwxrwxrwx 1 root root 33 Sep 25 14:50 /usr/lib/libwiringPi.so -> /usr/local/lib/libwiringPi.so.2.0 

LDCONFIG -v показывает librrd, и библиотека, кажется, для правильной архитектуры (руки). Есть ли что-то еще, что мне не хватает?

+1

Создайте программную ссылку в папке/usr/lib «$ ln -s librrd.so.4.2.0 /usr/lib/librrd.so», а затем попробуйте –

+0

@SantoshA благодарит, что решает проблему. –

+0

Добро пожаловать. @Thomas Stets Обновлен ответ в разделе ответов для дальнейшего использования –

ответ

2

Создайте программную ссылку в папке/usr/lib с номером библиотеки до фактической версии установленной библиотеки. Как

$ ln -s librrd.so.4.2.0 /usr/lib/librrd.so 

В общем

$ ln -s Library_name.version.so Library_name.so 

Этот вопрос потому, что компоновщик будет пытаться идентифицировать библиотеки совместно объектные файлы абсолютным именем. Если ld не может найти, тогда он будет генерировать ошибки, подобные этому.

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