You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译报错/usr/bin/ld: cannot find -lmysqlclient的问题求助

解决/usr/bin/ld: cannot find -lmysqlclient的问题

原因分析

链接器默认只会搜索指定目录的直接子文件,不会递归查找子目录。你的libmysqlclient.so存放在/usr/lib64/mysql/子目录下,而链接器仅搜索/usr/lib64/根目录,因此无法定位到目标库文件。

可行解决方案

方案1:编译时显式指定库路径

在编译命令中添加-L/usr/lib64/mysql参数,告知链接器去该子目录查找库文件:

g++ -o server  main.cpp timer/lst_timer.cpp http/http_conn.cpp log/log.cpp CGImysql/sql_connection_pool.cpp webserver.cpp config.cpp -g -lpthread -L/usr/lib64/mysql -lmysqlclient

方案2:创建软链接到链接器默认搜索目录

将libmysqlclient.so软链接到/usr/lib64/目录下,让链接器能直接检索到:

sudo ln -s /usr/lib64/mysql/libmysqlclient.so /usr/lib64/libmysqlclient.so

执行完成后重新运行编译命令即可。

方案3:更新动态链接器缓存

  1. 编辑/etc/ld.so.conf文件,添加一行目录路径:
/usr/lib64/mysql
  1. 执行命令更新动态链接器缓存:
sudo ldconfig

之后重新编译,链接器会自动识别该目录下的库文件。


内容的提问来源于stack exchange,提问作者wu jiqiang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 07:57:10