Я не могу найти Либррда под Распбианом

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

tos@pi ~/work/reader $ gcc -o reader -lwiringPi -lrrd *.c                     
/usr/bin/ld: cannot find -lrrd                                                          
collect2: ld returned 1 exit status

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

tos@pi ~/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, которую он находит без проблем:

tos@pi ~/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, и библиотека, кажется, предназначена для правильной архитектуры (arm). Есть что-то еще, что я пропускаю?

1 ответ

Решение

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

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

В общем

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

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

Другие вопросы по тегам