Linux g++ 提示/usr/bin/ld: 找不到 -lthrift 问题解决办法

本文解决g++编译Thrift时遇到的找不到libthrift.so库的常见问题,提供检查符号链接和安装对应库的方法,适用于系统缺少库或版本不匹配的情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在使用g++ 编译 thrift的时候,返回报错提示:/usr/bin/ld: 找不到 -lthrift

错误代码展示:

[root@master gen-cpp]# g++ -I /usr/local/src/thrift-0.10.0/lib/cpp/src/thrift/ -lthrift RecSys.cpp RecSys_constants.cpp RecSys_types.cpp RecSys_server.skeleton.cpp -o server

/usr/bin/ld: 找不到 -lthrift

collect2: 错误:ld 返回 1

错误原因:

1 系统没有安装相对应的lib

2 相对应的lib版本不对

3 lib(.so档)的symbolic link不正确,没有连结到正确的函式库文件(.so)

解决方法:

(1)先判断在/usr/lib下的相对应的函式库文件(.so)的symbolic link是否正确,若不正确改成正确的连结目标即可解决问题。

(2)若不是symbolic link的问题引起,而是系统缺少相对应的lib安装lib即可解决。

(3)如何安装缺少的lib

直接在命令行输入

# locate  lib***

显示出文件所在路径,

然后在命令行:

# ln -s 文件路径/文件名  /usr/lib/文件名

在thrift目录下使用命令查找libthrift.so文件

[root@master thrift-0.10.0]# find ./ -name libthrift*

./lib/cpp/.libs/libthrift-0.10.0.so

./lib/cpp/.libs/libthrift.so

./lib/cpp/.libs/libthrift.a

... ...

 

创建软连接:

 

[root@master thrift-0.10.0]# ln -s /usr/local/src/thrift-0.10.0/lib/cpp/.libs/libthrift.so /usr/lib/libthrift.so

参数解释:

-I:指定解析用头文件

-o:编译生成的文件名

关注公众号,获取最新消息

阿布的进击

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值