Где разместить / найти библиотеку отладки в Linux?

On Windows, имя библиотеки отладки имеет d как постфикс. Но я не знаю, есть ли правило на Linux.

Я знаю, что есть некоторые dbg упаковок по Debian. Например, библиотека libjpeg62-dbg расположенный в /usr/lib/debug/usr/lib/libjpeg.so.62.0.0. Является ли стандартным правилом размещение библиотеки отладочной версии в /usr/lib/debug?

и многое другое. Например, если я запускаю pkg-config --libs opencv что будет верните GCC параметры ссылки на меня, такие как:

-L/usr/lib -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

это очень хорошо. Но я не нахожу вариант в pkg-config который может возвращать параметры из тех debug версия библиотеки, такие как:

-L/usr/lib/debug -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_flann

почему pkg-config не имеет возможности вернуться debug версия опций, если есть стандартное правило о библиотеке отладочных версий?

Итак, я хочу знать:

  1. есть ли стандартный каталог для разместить библиотеку отладки?
  2. есть ли некоторые команды или параметры для обработки библиотеки отладки, как pkg-config --libs?
  3. как вы обрабатываете проблему, если вышеуказанные два ответа нет?

спасибо.

2 ответов


Linux и windows имеют разные взгляды на это. В Linux нет смысла предлагать библиотеку отладки, потому что если кто-то действительно хочет отладить библиотека у них обычно есть исходный код. В противном случае вы можете смешивать и сопоставлять (связывание библиотеки "release" с программой "debug" просто отлично). Вы можете быть хорошим парнем и оставить символы отладки, если вы действительно хотите (сисадмины могут удалить символы, если они думают, что слишком много коптить.)

другая проблема заключается в том, что под linux слишком много флагов компилятора. Там не просто "отладка" и "релиз". Существует миллион флагов, которые можно включать и выключать, а также различные целевые архитектуры. Вот почему большинство разработчиков библиотек просто выпускают исходный код и позволяют пользователю (или сопровождающему дистрибутива) решать, что включать и выключать. Другими словами, ваша идея" отладочной " библиотеки никоим образом не может предвидеть потребности каждого разработчика.


вам не нужно связываться с отладочной версией библиотеки, чтобы использовать ее, поэтому pkg-config не предлагает такой вариант. Все, что вам нужно сделать, это настроить свой LD_LIBRARY_PATH надлежащим образом при запуске программы, и библиотеки отладки будет использоваться во время выполнения.