Я компилирую разделяемую библиотеку с -lGL
в команде ld. Но он не может найти libGL.so в моей системе. Пакет Nvidia правильно указал путь к библиотекам в /etc/ld.so.conf.d/
. Даже вывод ldconfig -p | grep libGL.so
нашел это:
libGL.so.1 (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so.1
libGL.so.1 (libc6) => /usr/lib32/nvidia-current/libGL.so.1
libGL.so (libc6,x86-64, OS ABI: Linux 2.4.20) => /usr/lib/x86_64-linux-gnu/libGL.so
libGL.so (libc6,x86-64) => /usr/lib/nvidia-current/libGL.so
libGL.so (libc6, OS ABI: Linux 2.4.20) => /usr/lib32/libGL.so
libGL.so (libc6) => /usr/lib32/nvidia-current/libGL.so
Я почти везде читал, что для связи с ним у меня есть в основном 2 решения:
Свяжите nvidia libGL.so со стандартным расположением /usr/lib. Это кажется неправильным для тех, кто попытается скомпилировать библиотеку opengl. Почему компоновщик не использует кеш ldconfig?
Добавьте вручную -L/usr/lib/nvidia-current к пути поиска библиотеки. Опять же, неправильно, как я могу узнать каждый путь, по которому можно найти библиотеку во всей системе?
Итак, мой реальный вопрос: каков стандартный и автоматический подход для связывания с библиотекой не в стандартном месте, а в месте, уже зарегистрированном с помощью /etc/ld.so.conf
?