В основном проекте есть 3 подпроекта общей библиотеки и один бинарный проект. Общая библиотека libb.so зависит от liba.so, общая библиотека libd.so зависит от libb.so и, наконец, двоичная операция зависит от libd.so. Как видите, существует иерархия зависимостей библиотек. Я исходил из предположения, что каждая общая библиотека внутренне хранит информацию о путях косвенных зависимостей, когда используется флаг -rpath-link=dir. Но это кажется неверным. Ниже вы найдете сообщение об ошибке, которое я получаю при построении двоичной операции.
Структура проекта
Код: Выделить всё
abcd
├── a
│ └── lib.cpp
├── b
│ └── lib.cpp
├── build.sh
├── c
│ └── main.cpp
└── d
└── lib.cpp
a/lib.cpp
Код: Выделить всё
#include
extern "C" void print_a() {
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79861298/rpath-link-dir-not-able-to-locate-the-shared-library[/url]