原文链接:https://blog.csdn.net/kksdw/article/details/104797905
test_main是静态的程序,它已经把各种依赖的函数,比如pthread_create()函数,以及所有pthread_create()依赖的任何东西,都包含进来了。而如果你不加-static,结果就不同了。
gcc test_main.c -o test_main -lpthread
文件要小很多!
chenxf@chenxf-PC:~/temp/test_main$ ll
-rwxrwxr-x 1 chenxf chenxf 8891 6月 23 14:39 test_main
-rw-rw-r-- 1 chenxf chenxf 1081 6月 23 14:38 test_main.c*
当gcc -static 用于编译一个程序时,会使此程序静态编译(把动态库的函数和所依赖的任何的东西,都编译进本程序),编译好后,文件会非常大,但是,运行时就不需要依赖任何动态库。
gcc -static作用
最新推荐文章于 2025-06-10 19:52:44 发布
本文详细解释了如何使用GCC的-static选项进行静态编译,通过示例对比了静态编译和动态编译的区别,静态编译会将所有依赖库编译进程序,使程序独立运行但文件体积较大。
4528

被折叠的 条评论
为什么被折叠?



