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没有选项返回调试版本的选项?
所以,我想知道:
pkg-config --libs?谢谢.
Chr*_*rle 10
Linux和Windows对此有不同的看法.在Linux中,提供调试库真的没什么意义,因为如果有人真的想调试库,他们通常会有源代码.否则,您可以混合和匹配(将"发布"库与"调试"程序链接就可以了).如果你真的想要,你可以成为一个好人并留下调试符号(系统管理员可以在他们认为有太多膨胀的情况下删除符号).
另一个问题是在linux下有太多的编译器标志.不只是"调试"和"发布".您可以打开和关闭一百万个标志,以及各种目标体系结构.这就是为什么大多数库开发人员只是发布源代码并让用户(或发行版维护者)决定打开和关闭的内容.换句话说,您对"调试"库的想法无法预测每个开发人员的需求.