gpt4 book ai didi

c++ - 静态库 - 调试还是发布?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:26:14 25 4
gpt4 key购买 nike

我来自 Windows,我用 gcc 生成了一个 C++ 静态库 (libMyLib.a)。

在 Windows 中,您实际上可以生成带有调试信息且未优化的调试静态库 (.lib);然后您还可以生成一个没有调试信息的发布静态库 (.lib),并打算在最终产品中静态链接。

我做了

$ objdump --syms libMyLib.a | grep "debug"

得到了一堆类似

的行
0000000000002ea0 l     F .text  00000000000001fc _ZN12_GLOBAL__N_121debugMyFunction2Ejllj

因为有“调试”后缀,我相信这个静态库是一个调试库,其中嵌入了调试信息。我不确定为什么它与 Windows 相比要小得多(Windows 为 300 MB,而 Linux 仅为 13 MB)。我怀疑缺少一些调试信息。

此时我有两个问题:

  1. 我说静态 .a 库是一个包含所有必要调试信息的调试库是否正确?
  2. 是否在 Linux 中生成发布静态库(准备好在最终产品中链接,静态库,没有调试信息)?如果是,我该如何制作?

最佳答案

二进制文件,无论是静态库、动态库、可执行程序还是其他任何东西,都可能包含或不包含调试信息。由您的编译选项决定是否应生成调试信息。例如,对于 gcc,请参见:https://gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

关于c++ - 静态库 - 调试还是发布?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34630436/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com