欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2022-06-03 08:38:28
...

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

问题描述

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

    g++ -o [email protected] $^ -static

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

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解决了该问题。
用如下两条命令安装所需要的静态库即可。

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

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