- 第二阶段:验证阶段
ldd mytest //显示静or动态链接
在Linux中,编译形成可执行程序,默认采用的就是动态链接——提供动态库。
进行静态链接
gcc mycode.c -o mytest_static -static
在Linux中,如果要按照静态链接的方式进行形成可执行程序,需要添加-static选项——提供静态库。
安装C语言静态库
sudo yum install -y glibc-static
安装C++语言静态库
sudo yum install-y libstd C++-static
注:1.如果没有静态库,但就要-static,行不行? 行!
2.如果没有动态库,只有静态库,而且gcc能找到,这个过程也是可以的!
gcc默认优先动态链接,-static的本质就是改变优先级。
3.不一定是纯的全部动态链接或者静态链接。 混合的!
static只适配一次,所有链接要求全部变成静态链接
- 动态静态链接的优点:
(优点)1.动态库因为是共享库,有效的节省资源(磁盘空间、内存空间、网络空间)
(缺点)2.动态库一旦缺失,导致各个程序都无法运行。
(优点)1.静态库不依赖库,程序可以独立运行;
(缺点)2.体积大,比较消耗资源