升级QT6 后编译带有qobject的文件报错:
/Qt6.2/6.3.0/android_armv7/include/QtCore/qnamespace.:56:1: error: Parse error at “attribute”
原因可能是QT已经自带了mingW,然后你的编译选项也带了你本地安装的mingW,导致两者冲突,因此将你的编译选项的mingW去除即可。
比如:
B:\Qt6.2\6.3.0\mingw_64\bin\moc.exe -DQT_QUICK_LIB -DQT_CORE_LIB --include D:/WorkSoftware/QTCreatorWorkSpace/build-untitled5-Android_Qt_6_3_0_Clang_armeabi_v7a-Debug/moc_predefs.h … -IC:/MinGW/include …\untitled5\test.h -o moc_test.cpp
下面的moc 命令就会报上面的错误。去掉红色内容就编译通过了。所以我们可以在QTCreator中通过设置当前项目使用的系统环境变量去掉这个变量。如下:
从path中移出 -IC:/MinGW/include 即可。
如果上面的办法解决不了的话就直接将 -IC:/MinGW 改名即可。