在使用Qt的时候经常会出现一些莫名奇妙的编译报错,有时候真的是无语,经常会遇到诸如 -1: error: [debug/main.o] Error 1 这样的问题,调试了很多次后发现和我自己设置的预编译stdafx.h的头文件有关系。
我常常在.pro文件中使用
CONFIG += precompile_header
PRECOMPILED_HEADER = stdafx.h
来进行预编译,加快程序编译速度,其原理和VS自带预编译应该是一样的,但这次问题也处在这上面。
我有时候会将一个类全部写在一个.h头文件里,但是当我将类拆开写成.h文件和.cpp文件时,就会遇到:
-1: error: [debug/main.o] Error 1
只要把预编译的那两行删掉,就能编译成功,成功一次后再加上依然可以正常运行。
分析认为可能是由于预编译文件不止记录了包含在stdafx.h中的头文件,将所有头文件全部记录了下来,因此当修改其他头文件时就会发现和刚才记录的不一致,因此报错。
本人C++小白一只,博客只是为了记录编程中遇到的问题,欢迎各路大神指教,先再此谢过。