Qt 项目Mingw编译器转换为VS编译器时的错误及解决办法

一、报错:error: C2001: 常量中有换行符

报错内容:

 解决办法:

在 .pro 文件中添加以下代码(我添加在了 CONFIG 和 SOURCES之间有用,但具体位置可能不唯一,可以自己试一下,有用即可)

msvc {
QMAKE_CFLAGS += /utf-8
QMAKE_CXXFLAGS += /utf-8
} 

二、报错C1189 #error: "No Target Architecture"

在.pro文件中添加上述代码之后不会报格式问题了,但是会报报错C1189 #error: "No Target Architecture"的问题,对此解决方案是在.pro文件上加上_AMD64_宏定义,如下图所示。

Qt 项目Mingw编译器转换为VS编译器时的错误及解决办法_第1张图片

 三、数据库问题

报错内容:

此时构建成功,但是启动时报“QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7”,即MySQL数据库驱动并未加载

解决方法: 

此时分两种情况:

第一种:无MySQL驱动。

在这种情况下,检查Qt\Qt5.12.11\5.12.11\msvc2017_64\plugins 目录下是否有qsqlmysql.dll和qsqlmysqld.dll,如果没有,就说明Qt没有相应的mysql驱动。这时,在QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7 报错中没有QMYSQL项。

解决方法是:拷贝qmysql.dll和qsqlmysqld.dll至plugins目录下。

第二种:库支持不完善。

解决方法是:将MySQL\MySQL Server 5.7\lib下的libmysql.dll拷贝至Qt\Qt5.12.11\5.12.11\msvc2017_64\bin下即可。

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