Где разместить / найти библиотеку отладки в 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 версия опций, если есть стандартное правило о библиотеке отладочных версий?
Итак, я хочу знать:
- есть ли стандартный каталог для разместить библиотеку отладки?
- есть ли некоторые команды или параметры для обработки библиотеки отладки, как
pkg-config --libs
? - как вы обрабатываете проблему, если вышеуказанные два ответа нет?
спасибо.
2 ответов
Linux и windows имеют разные взгляды на это. В Linux нет смысла предлагать библиотеку отладки, потому что если кто-то действительно хочет отладить библиотека у них обычно есть исходный код. В противном случае вы можете смешивать и сопоставлять (связывание библиотеки "release" с программой "debug" просто отлично). Вы можете быть хорошим парнем и оставить символы отладки, если вы действительно хотите (сисадмины могут удалить символы, если они думают, что слишком много коптить.)
другая проблема заключается в том, что под linux слишком много флагов компилятора. Там не просто "отладка" и "релиз". Существует миллион флагов, которые можно включать и выключать, а также различные целевые архитектуры. Вот почему большинство разработчиков библиотек просто выпускают исходный код и позволяют пользователю (или сопровождающему дистрибутива) решать, что включать и выключать. Другими словами, ваша идея" отладочной " библиотеки никоим образом не может предвидеть потребности каждого разработчика.
вам не нужно связываться с отладочной версией библиотеки, чтобы использовать ее, поэтому pkg-config
не предлагает такой вариант. Все, что вам нужно сделать, это настроить свой LD_LIBRARY_PATH
надлежащим образом при запуске программы, и библиотеки отладки будет использоваться во время выполнения.