簡體   English   中英

靜態庫-調試還是發布?

[英]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)。我懷疑缺少一些調試信息。

我現在有兩個問題:

  1. 我是否正確地說靜態.a庫是包含所有必需調試信息的調試庫?
  2. 是否在linux中生成了發布靜態庫(已准備好在最終產品中鏈接,靜態庫,沒有調試信息)? 如果是的話,我該怎么做?

二進制文件,無論是靜態庫,動態庫,可執行程序還是其他任何文件,都可能包含或不包含調試信息。 由您的編譯選項確定是否應生成調試信息。 例如,對於gcc,請參閱: https : //gcc.gnu.org/onlinedocs/gcc/Debugging-Options.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM