LINUX.ORG.RU

ldconfig и makefile

 


0

1

Допустим есть задача: скомпилить некий myprog.cpp, при этом ему нужны уже скомпиленные библиотеки lib1.so и lib2.so. Так вот, как все это сделать через мейкфайл, то есть:
1. Копировать библиотеки lib1.so и lib2.so в путь /usr/local/lib/myprog
2. Прописать эти пути в ldconfig, что бы при компиляции и запуске программы либы искались из /usr/local/lib/myprog

Нагуглить удалось только что пути добавить можно прописав их в /etc/ld.so.config и запустив ldconfig (кстати /etc/ld.so.config у меня пустой по дефолту), но как добавить пути из мейкфайла при выполнении компиляции?

Можно ещё жёстко прописать путь RPATH/RUNPATH прямо в бинарнике. Причём это можно делать не только во время компиляции и компоновки, но и после (например внутри make install).

Deleted
()
Ответ на: комментарий от Deleted

Кстати, сейчас прописал в /etc/ld.so.config:

/usr/local/lib:/usr/local/Game/lib:/usr/local/Game/lib/OGRE
выполнил sudo ldconfig, но в кеше библиотек так и не появилось, в чем проблема может быть?

raycast
() автор топика
Ответ на: комментарий от raycast

Можешь пример написать, на c++ (с путем скажем /home/user001/libname.so)?

Добавь опцию компоновки:

-Wl,-rpath,/home/user001

Deleted
()
Ответ на: комментарий от raycast

Добавил, все работает, но на всякий случай: посмотри пожалуйста и скажи туда ли добавил...

Хм... Я не пользуюсь встроенным в eclipse сборщиком, предпочитаю cmake. Но судя по названию поля - ты добавил не совсем туда по смыслу. То есть сама по себе опция попадает туда, куда нужно - в команду компоновки, но конкретно вот это поле предназначено для введения в него текста другой опции.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.