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_宏定义,如下图所示。

 三、数据库问题

报错内容:

此时构建成功,但是启动时报“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下即可。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值