【发布时间】:2025-11-22 21:40:01
【问题描述】:
当使用 GCC 的 -static 选项编译 C 程序时,最终的可执行文件将包含大量 C 的标准函数。比如我的整个程序是这样的
int main(int argc, char *argv[]) {
printf("Hello, world!\n");
return 0;
}
我检查了编译后的可执行文件,其中包含strcmp()、mktime()、realloc() 等函数,尽管我的程序从未调用它们。但是stdlib.h中的一些功能缺失,如rand()、system()等。我的实验环境是:Ubuntu 14.04(Linux内核3.13.0); GCC 4.8.2。我想知道当-static开启时,可执行文件中会包含哪些C的函数。
【问题讨论】:
-
运行任何应用程序所需的函数、您调用的函数、这些函数调用的函数。取出 printf 来查看最小集合。