Использование библиотек в Ubuntu

У меня есть исходный код либы, я его собрал в двух вариантах(релиз и дебаг), после сборки двух вариантах генерятся сами либы и вспомогательный софт(графический софт чтобы проверить устройства подключенные) соответственно версии релиз и дебаг тоже . После сборки библиотеки (cmake->make -jn -> make install) у меня в папках релиз и дебаг появились 3 файла: bin, lib, include. В директории bin папки релиз лежат файлы с такими же именами что и в директории bin в папке дебаг, у них только размеры разные(из за разных режимов сборок). У меня вопрос, почему дебажные либы не помечаются как в винде буквой "d" как в виндовс?

После сборки я добавил директории lib из папок релиз и дебаг в LD_LIBRARY_PATH. Когда начал проверять какие либы тянет софт( использовал lld), который лежит в папке бин, оказалось, что софт из директории bin папки релиз использует библиотеки, которые расположены в дебаге.
Как мне заставить использовать софт из директории bin папки релиз библиотеки, которые находятся в директории lib той жей папки релиз? (Либу которую я собираю intel realsense, JC: ubuntu 20.04, g++ 9.3)

И как мне вообще заставить софт которые собран под дебаг использовать дебажные либы, а не релизные.

Я хочу сделать так, как было в Windows на Visual Studio: когда пишешь код, то дебажная версия использует только либы версии дебаг, а релизная - релиз, соответственно при отладке использовалась дебажная версия бибилиотеки.

Я новичок в использовании linux, недавно начал активно пользоваться.


Ответы (1 шт):

Автор решения: eri

добавил директории lib из папок релиз и дебаг в LD_LIBRARY_PATH

Потому и показывает те, что нашлись первыми ldd.

Обычно же линковщик ищет либы в папках .,../lib/,/usr/lib... и так далее - программа должна запуститься со своими либами без модификации LD_LIBRARY_PATH.

Указать конкретно где искать библиотеки можно запустив

LD_LIBRARY_PATH=../lib/ ./program
→ Ссылка