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

x86_64架构Fedora34下libsocketcan安装后程序无法加载问题

问题分析与解决方案

为何默认安装到/usr/local/lib而非lib64?

在Fedora 34这类RPM系64位系统中,autotools(./configure)默认会将库安装到prefix目录下的lib子目录,即便检测到x86_64架构,也不会自动切换到lib64路径——这是autotools的默认行为,你编译出的仍然是64位库,只是安装路径不符合系统的64位库搜索习惯。

解决方法

方法1:重新编译安装到标准64位库路径

这是最规范的方案,从根源解决路径问题:

  1. 回到libsocketcan源码目录,清理之前的编译产物:
make clean
  1. 重新执行configure,显式指定64位库安装路径:
./configure --libdir=/usr/local/lib64
  1. 重新编译并安装:
make
sudo make install
  1. 更新系统动态链接库缓存:
sudo ldconfig

方法2:让系统识别/usr/local/lib为64位库搜索路径

如果不想重新编译,可通过修改动态链接库配置实现:

  1. 创建或编辑/etc/ld.so.conf.d/local-lib.conf文件,添加以下内容:
/usr/local/lib
  1. 执行命令更新缓存:
sudo ldconfig

*注:Fedora默认不会自动把/usr/local/lib纳入64位库的搜索范围,通过配置文件添加后,系统会在此路径下查找64位库文件。

方法3:临时指定库路径运行程序

仅用于临时测试场景,启动程序时手动指定库路径:

LD_LIBRARY_PATH=/usr/local/lib ./your-qt-canbus-program

额外排查建议

  • 用file /usr/local/lib/libsocketcan.so确认库文件是64位架构(输出应包含x86_64)。
  • 检查Qt SocketCAN插件是否依赖特定版本的libsocketcan,版本不匹配也可能导致加载失败。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 05:35:35