c - 为什么当我使用gcc和eclipse cdt编译代码时,可执行文件的大小存在差异

标签 c gcc eclipse-cdt

当我使用 gcc(使用终端)和 eclipse cdt 编译代码时,可执行文件的大小存在差异。gcc 8kb 和 eclispse 27 kb。为什么会发生这种情况? eclipse 不是使用预装的 gcc 编译器吗?程序非常简单,但是对于较大的代码来说,它会显着增加大小并影响程序性能吗?

最佳答案

是的,Eclipse 使用相同的 gcc。但是,Eclipse 可能会向二进制文件添加一些用于调试的信息。例如,Eclipse 可能会使用 -g 选项运行 gcc,该选项将在二进制文件中包含整个源代码。这可能会导致可执行文件大小存在很大差异。

例如,尝试编译这个简单的程序:

#include <stdio.h>

int main() {
    int i;
    for (i=0; i<10; i++)
        printf("Hello, world!");

    return 0;
}

尝试:

$ gcc -o program program.c
$ gcc -o program_g program.c
$ ls -lh | grep program
-rwxr-xr-x  1 zagorax users     7,8K set 11 19:37 program
-rwxr-xr-x  1 zagorax users     8,4K set 11 19:37 program_g
-rw-r--r--  1 zagorax users      105 set 11 19:35 program.c

当然,不同的gcc选项可能会导致不同的大小。

关于c - 为什么当我使用gcc和eclipse cdt编译代码时,可执行文件的大小存在差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12374855/

相关文章:

用gcc编译C文件得到x86汇编代码

c - 应用多个 __attribute__ 时 map 文件中缺少变量

c++ - 覆盖注册关键字

条件堆免费

c - 无论标志如何,来自二进制的 fread 返回相同

c++11 - gcc:切换后如何最好地处理有关(无法到达的)功能结束的警告?

c - GCC 为什么以及如何编译缺少 return 语句的函数?

c++ - 设置 C/C++ 构建配置在点击确定后恢复为默认值

c++ - 在 Eclipse CDT 中使用与另一个项目相同的设置创建一个新的 C++ 项目

eclipse - 使用CDT的Eclipse中的默认类命名自定义