当我使用 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/