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

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

问题描述

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

    g++ -o $@ $^ -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查看你会发现编译之后的目标文件会非常大。这时就是成功的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值