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

使用g++编译共享库后链接失败:ld无法找到-llibfuncs

链接共享库报错的解决方法

错误原因

GCC链接器的-l选项有固定规则:当使用-l<库名>时,链接器会自动在库名前加上lib前缀,再加上.so(共享库)或.a(静态库)后缀去查找文件。你写了-llibfuncs,链接器会尝试寻找liblibfuncs.so,而你实际生成的库是libfuncs.so,自然找不到。

正确的编译链接命令

把-llibfuncs改为-lfuncs,同时建议将输出文件名从main.o改为main(main.o通常指编译生成的目标文件,可执行文件一般不用这个后缀):

g++ main.cpp -L. -lfuncs -o main

运行时注意事项

运行生成的可执行文件时,系统可能找不到当前目录下的共享库,可通过以下方式解决:

  • 临时设置环境变量:
export LD_LIBRARY_PATH=.
./main
  • 或者编译时直接指定运行时库路径(推荐),这样无需每次手动设置环境变量:
g++ main.cpp -L. -lfuncs -Wl,-rpath=. -o main

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 17:12:09