当一个C程序编译时使用GCC的-static
选项时,最终的可执行文件将包含大量C的标准函数。例如,我的整个程序就像是gcc用“-static”编译的可执行文件中包含哪些函数?哪些功能不是?
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看最小的一组。 –