原文链接: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作用
最新推荐文章于 2024-03-13 22:30:28 发布