在 Linux 下有时候我们需要静态连接,但是静态连接会失败,失败的原因有几种:
1.没有相关的静态库文件
如果是没有相关的静态库文件,那么使用静态连接的话,就是下面的这种效果:
就是显示无法找到 ....
解决方法:安装相关的静态库文件
sudo yum install -y glibc-static libstdc++-static
如果没有 sudo 也可以直接在 root 下进行安装。
2.静态连接时有一堆东西
就是上图这种,这种的原因是因为静态连接是由交叉编译的,所以就需要指定连接的其他的动态库,所以就需要在编译的时候指定也就是带 -l 选项指定一下其他的库。
当指定库后编译还是不通过时,看一下后面有没有这种:
如果是这个的话,那么可以在 -l 选项里面带一个 -ldl 的,这样就能解决上述的几个问题。