从qt 4.3.5移植到qt 5.2.1时的编译错误

Compiler errors during port of application from qt 4.3.5 to qt 5.2.1

本文关键字:qt 1时 编译 错误      更新时间:2023-10-16

我正在将MSVC 2010的c++ Dll从32位移植到64位。因此,我改变了qt版本,它使用从qt 4.3.5到qt 5.2.1。看起来,他们改变了一些东西,因为当我尝试编译时,我收到以下错误:

  • cpp(116):错误C2039: 'latin1':不是'QString'的成员
  • cpp(477):错误C2039: 'extension':不是'QFileInfo'的成员
  • cpp(518):错误C2660: 'QFileInfo::baseName':函数不接受1个参数
  • cpp(824):错误C2039: 'setIcon':不是'QWidget'的成员

我查看了qt移植指南,但没有找到任何针对上述问题的具体内容。欢迎任何提示

我认为,所有提到的函数都来自Qt3,并且出于兼容性原因,它们与Qt3支持库一起放在Qt4中。您现在需要做的就是用Qt5 API中的等效函数替换它们。例如:

QWidget::setIcon() -> QWidget::setWindowIcon()
QFileInfo::extension() -> QFileInfo::suffix()
etc.