报错:librviz.so: undefined reference to `QAbstractItemView::eventFilter(QObject*, QEvent*)@Qt_5‘ colle

报错:librviz.so: undefined reference to QAbstractItemView::eventFilter(QObject*, QEvent*)@Qt_5’

collect2: error: ld returned 1 exit status

分析:错误是由于在连接 librviz.so 时无法找到对 QAbstractItemView::eventFilter 的引用。这个错误表明在连接 librviz.so 时没有正确找到 Qt 5 库的符号。

为了解决这个问题,您可以尝试以下方法:

  1. 确认 Qt 版本:确保您正在使用的 Qt 版本与 librviz.so 所需的版本相匹配。不同的 Qt 版本可能会有不同的符号名称或函数签名,因此确保所链接的 Qt 5 库版本与 librviz.so 的要求相符。

  2. 链接正确的 Qt 库:检查您的链接命令或构建系统配置,确保您正在链接的 Qt 库是正确的,包括正确的库路径和库名称。您需要确保通过 -lQt5Core-lQt5Widgets 或类似的选项链接了正确的 Qt 库。

  3. 检查符号是否存在:使用工具如nm命令或者objdump来检查 Qt 库中是否存在 QAbstractItemView::eventFilter 这个符号。如果符号确实存在,那么可能是链接时的路径配置不正确。

  4. 验证库路径:确保 Qt 库的路径正确,并且编译器能够找到这些库。您可以使用 -L 选项来指定库文件的路径。

我的是:Qt 5 库版本与 librviz.so的要求

解决:
查看qt5版本

qmake -v

我的在anaconda3

QMake version 3.1
Using Qt version 5.9.7 in /home/anaconda3/lib、

就把.bashrc里面的anaconda3注释掉,使用x86_64-linux-gnu里的qt5

QMake version 3.1
Using Qt version 5.12.8 in /usr/lib/x86_64-linux-gnu

就绝决了问题

你可能感兴趣的:(#,linux基础,qt,开发语言)