-2

我已经为这个问题苦苦挣扎了很长一段时间,不幸的是我自己的推理和谷歌搜索都没有帮助我。简单来说,我正在尝试将 nativeErrorCode() 函数与 QSqlError 类一起使用。编译器说:mainwindow.cpp:43:86:错误:'class QSqlError'没有名为'nativeErrorCode'的成员。这是它引用的行(准确地说,是两行):

errorCreatingBooksTableMessageBox.setDetailedText((query.lastError().nativeErrorCode().isEmpty()) ?
                query.lastError().text() : query.lastError().nativeErrorCode() + "\n" + query.lastError().text());

问题似乎微不足道,但我自己找不到答案。#include 在 mainwindow.h 文件中。经过一番研究,我注意到其他论坛上的其他人建议编译器使用了错误版本的头文件,这似乎很可能发生,因为函数 nativeErrorCode() 是在 Qt5 中引入的。我试图将 qt4 文件夹移动到垃圾箱,但仍然没有效果。任何帮助都会得到帮助

4

1 回答 1

0

我不确定您遇到此问题的操作系统。然而,在大多数 Linux OS Image 中,都是用 Qt4 预编译的,即使我们额外构建了 Qt5 库,系统环境也可能使用旧的 Qt4 库来生成 make 文件。如果我们从源代码构建 Qt5,这很常见。因此,您可以尝试从 Qt5 路径执行 qmake 会更好。因此将创建Makefile以构建 Qt5 库。

为了确认,打开Makefile并检查变量QMAKE是指 Qt5 还是 Qt4 库。

我正在从我的系统中更新此内容供您参考,“QMAKE = /home/user1/Qt5.6.0/5.6/gcc_64/bin/qmake” 由此可见,Makefile 正在使用 Qt5 库并进一步编译,Qt5 库将用于编译我的应用程序源代码。

于 2017-10-25T23:11:46.130 回答