我一直在努力解决这个问题很长一段时间,不幸的是我自己的推理和谷歌搜索都没有帮助我。简单来说,我试图使用带有QSqlError类的nativeErrorCode()函数。编译器说: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文件中。经过一些研究,我注意到其他论坛上的其他人建议编译器使用错误版本的头文件,这似乎很可能发生,因为在Qt5中引入了函数nativeErrorCode()。我试图将qt4文件夹移动到垃圾箱,但仍然没有效果。任何帮助都是适当的
答案 0 :(得分:0)
我不确定您遇到此问题的操作系统。但是在大多数Linux操作系统映像中,使用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库将用于编译我的应用程序源代码。