Ссылка на разделяемую библиотеку, которая использует другую разделяемую библиотеку без rpath - PullRequest
0 голосов
/ 17 мая 2011

Допустим, у меня есть библиотека lib1.so, созданная так:

gcc 1.cpp -o lib1.so  -shared

И у меня есть еще одна библиотека lib2.so, созданная таким образом:

gcc 2.cpp -o lib2.so -shared -L. -l1

Но соединение с lib2.so

gcc main.cpp -o main -L. -l2

выдает предупреждение:

warning: lib1.so, needed by lib2.so, not found (try using -rpath or -rpath-link)

Но AFAIK использование rpath не рекомендуется, потому что тогда библиотека не может быть перемещена в другое место.

Как связать "main" с "lib2.so" без указания "lib1.so" и rpath?

1 Ответ

0 голосов
/ 15 июня 2011

Заголовок RPATH в двоичном файле имеет приоритет, поэтому даже если в библиотеке нет заголовка RPATH, он все равно будет найден ЕСЛИ , вы скопировали его в каталог, упомянутый в -rpath

...