方法一:清空构建目录
清空当前目录的多余文件即可,具体操作如下
一个正常的Qt项目刚被创建且没有编译时是这样的
一个main文件,一个pro文件,一个user文件,一个头文件(.h),和一个源文件(.cpp),一个ui文件(取决于创建项目的时候是否选择创建ui文件),六小件
编译之后
多了两个文件夹(debug和release),还多了.qmake.stash,Makefile,Makefile.Debug,Makefile.Release,ui_widget.h这五个文件
- debug 和 release文件夹:
- 这两个文件夹是Qt Creator(或qmake)根据构建配置(debug或release)自动创建的。它们用于存放编译后的可执行文件、库文件以及任何必要的调试信息。
- debug 文件夹包含调试版本的构建结果,包括可执行文件和调试符号,用于调试程序。
- release 文件夹包含发布版本的构建结果,这些版本通常进行了优化,不包含调试符号,体积更小,运行更快。
文件
- .qmake.stash:
- 这是一个缓存文件,用于存储qmake在解析项目文件(.pro)时收集的信息。这可以加快后续qmake运行的速度,因为它不需要每次都重新解析整个项目文件。这个文件是隐藏的,通常不需要手动修改。
- Makefile, Makefile.Debug, Makefile.Release:
- Makefile 是一个通用的Makefile文件,但在某些情况下,它可能是一个指向特定构建配置的Makefile的链接(如Makefile.Debug或Makefile.Release)。
- Makefile.Debug 和 Makefile.Release 分别包含用于构建debug和release版本的指令。这些文件由qmake根据.pro文件自动生成,包含了编译、链接等构建步骤的详细指令。
- Makefile文件是make工具使用的脚本,用于自动化编译过程。
- ui_widget.h:
- 当你有一个UI文件(如.ui文件,通过Qt Designer创建的界面文件)时,qmake和uic(UI Compiler)工具会自动将UI文件转换成C++头文件(如ui_widget.h)。这个头文件包含了UI界面元素的定义,允许你在C++代码中直接访问这些元素。例如,如果你有一个名为
widget.ui
的UI文件,那么生成的C++头文件可能命名为ui_widget.h
。
只要我们删除这几个多余的文件和文件夹,然后重新编译项目就可以正常运行了
方法二:修改配置文件(不推荐)
网上一搜一大堆,说什么打开找到并文件msvc-version.conf 在其中添加版本QMAKE_MSC_VER = 1900 (根据版本设置),但是这种方法当你更换了VS,它还会报错,而且你还要查找你的msvc版本所对应的QMAKE_MSC_VER,属实没必要,如果想用这种方法的话可以查看
QT error:msvc-version.conf loaded but QMAKE_MSC_VER isn't set - Parrallel - 博客园 (cnblogs.com)