0

对于示例 c++ 程序,我在 linux 中使用 size 命令获得了以下信息。

text    data     bss     dec     hex   filename
1908     304     152    2364     93c   test
 346       4       1     351     15f   test.o

我读过输出是尺寸;text 是实际代码, bss 包含未初始化的全局变量,而 data 作为已初始化和未初始化段的添加。我的问题是为什么目标文件和可执行文件的大小不同,特别是在文本中,因为源代码在内存中很常见?如果没有全局变量,为什么会显示 bss 的大小?

示例代码文件包含如下:

#include <iostream>

using namespace std;

   int main()
   {
      cout << "Hello World!" << endl ;

      return 0;
   }

谢谢你!

4

1 回答 1

1

大小不同,因为您的目标文件仅包含您的代码。链接文件还包括编译器 C++ 框架(即调用 main 所需的代码)和各种标准库(至少 C 和 C++ 标准库)的链接。

于 2012-02-29T04:47:28.917 回答