在Linux上放置/查找调试库的位置?

Yan*_*Xie 10 linux shared-libraries

Windows上,调试库的名称有一个d作为后缀.但我不知道Linux上是否有规则.

我知道Debian上有一些dbg包.例如,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
Run Code Online (Sandbox Code Playgroud)

这很好.但我没有找到一个选项pkg-config可以返回那些调试版本库的链接选项,例如:

-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
Run Code Online (Sandbox Code Playgroud)

如果有关于调试版本库的标准规则,为什么pkg-config没有选项返回调试版本的选项?

所以,我想知道:

  1. 是否有一个标准目录来放置调试库?
  2. 是否有一些命令或选项来处理调试库pkg-config --libs
  3. 如果以上两个答案都没有,你如何处理问题?

谢谢.

Chr*_*rle 10

Linux和Windows对此有不同的看法.在Linux中,提供调试库真的没什么意义,因为如果有人真的想调试库,他们通常会有源代码.否则,您可以混合和匹配(将"发布"库与"调试"程序链接就可以了).如果你真的想要,你可以成为一个好人并留下调试符号(系统管理员可以在他们认为有太多膨胀的情况下删除符号).

另一个问题是在linux下有太多的编译器标志.不只是"调试"和"发布".您可以打开和关闭一百万个标志,以及各种目标体系结构.这就是为什么大多数库开发人员只是发布源代码并让用户(或发行版维护者)决定打开和关闭的内容.换句话说,您对"调试"库的想法无法预测每个开发人员的需求.