[英]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.