Fork me on GitHub

解决Linux下静态链接库出现的问题

该问题是针对刚安装的Linux环境的小萌新在使用gcc/g++编译时出现的问题,如果你是大佬,这篇文章可能对你并没有帮助。

问题描述

当我们用Makefile工具时,在Makefile文件中写编译语句时,希望编译时用静态链接库来编译,例如语句如下。

1
g++ -o $@ $^ -static

编译时链接静态库的方式有好几种,这里我使用static。问题出现的是,当我们make时,出现如下问题

1
2
3
4
5
6
g++ -o test test.cpp -static
/usr/bin/ld: cannot find -lstdc++
/usr/bin/ld: cannot find -lm
/usr/bin/ld: cannot find -lc
collect2: error: ld returned 1 exit status
make: *** [tcpClient] Error 1

解决办法

在我百度了很久之后CSDN未能解决如下问题,还是Stack Overflow解决了该问题。
用如下两条命令安装所需要的静态库即可。

1
2
sudo yum install libstdc++-static
sudo yum install glibc-static

安装了以上两个库之后,make一下,编译成功,使用ll查看你会发现编译之后的目标文件会非常大。这时就是成功的。

本文标题:解决Linux下静态链接库出现的问题

文章作者:LiuXiaoKun

发布时间:2018年12月31日 - 21:12

最后更新:2018年12月31日 - 21:12

原始链接:https://LiuZiQiao.github.io/2018/12/31/解决Linux下静态链接库出现的问题/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

0%