[英]Static library - debug or release?
我来自Windows,使用gcc生成了C ++静态库(libMyLib.a)。
在Windows中,您实际上可以生成带有调试信息且未优化的调试静态库(.lib)。 那么您还可以生成一个发布静态库(.lib),而无需调试信息,并且可以在最终产品中进行静态链接。
我做了
$ objdump --syms libMyLib.a | grep "debug"
并有一堆线像
0000000000002ea0 l F .text 00000000000001fc _ZN12_GLOBAL__N_121debugMyFunction2Ejllj
因为有'debug'后缀,所以我相信这个静态库是一个调试库,其中嵌入了调试信息。 我不确定为什么它与Windows操作系统相比要小得多(Windows操作系统只有300 MB,Linux操作系统只有13 MB)。我怀疑缺少一些调试信息。
我现在有两个问题:
二进制文件,无论是静态库,动态库,可执行程序还是其他任何文件,都可能包含或不包含调试信息。 由您的编译选项确定是否应生成调试信息。 例如,对于gcc,请参阅: https : //gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.