C++ Qt:不重新生成可执行文件

C++ Qt:不重新生成可执行文件,c++,qt,executable,C++,Qt,Executable,我有一个简单的Qt程序。运行make时,会出现1200行长的错误 make: Circular main.o <- QThread dependency dropped. In file included from mythread.h:4, from main.cpp:3: ./QThread:1: error: stray '\127' in program ./QThread:1: error: stray '\2' in program ./QTh

我有一个简单的Qt程序。运行
make
时,会出现1200行长的错误

make: Circular main.o <- QThread dependency dropped.
In file included from mythread.h:4,
                 from main.cpp:3:
./QThread:1: error: stray '\127' in program
./QThread:1: error: stray '\2' in program
./QThread:1: error: stray '\1' in program
./QThread:1: error: stray '\1' in program
In file included from mythread.h:4,
                 from main.cpp:3:
./QThread:1:8: warning: null character(s) ignored
./QThread:1: error: stray '\2' in program
./QThread:1:18: warning: null character(s) ignored
./QThread:1: error: expected constructor, destructor, or type conversion before '>' token
./QThread:1:20: warning: null character(s) ignored
./QThread:1: error: stray '\1' in program
./QThread:1:22: warning: null character(s) ignored
./QThread:1: error: stray '\240' in program
./QThread:1: error: stray '\21' in program
./QThread:1:28: warning: null character(s) ignored
./QThread:1: error: stray '@' in program
./QThread:1:34: warning: null character(s) ignored
./QThread:1: error: stray '@' in program
./QThread:1: error: stray '\24' in program
./QThread:1:43: warning: null character(s) ignored
./QThread:1:54: warning: null character(s) ignored
./QThread:1: error: stray '@' in program
./QThread:1:56: warning: null character(s) ignored
./QThread:1: error: stray '\8' in program
./QThread:1:58: warning: null character(s) ignored
./QThread:1:60: warning: null character(s) ignored

...

./QThread:16: error: stray '\255' in program
./QThread:16: error: stray '\255' in program
./QThread:16: error: stray '\235' in program
./QThread:16: error: stray '\156' in program
./QThread:16: error: stray '\137' in program
./QThread:16: error: stray '\195' in program
./QThread:16: error: stray '\199' in program
./QThread:16: error: stray '\144' in program
./QThread:16:252: warning: null character(s) ignored
./QThread:16: error: stray '@' in program
./QThread:16: error: stray '\139' in program
./QThread:16: error: stray '\16' in program
./QThread:16: error: stray '\240' in program
./QThread:16: error: stray '\255' in program
./QThread:16: error: stray '\8' in program
./QThread:16: error: stray '\15' in program
./QThread:16: error: stray '\149' in program
./QThread:16: error: stray '\194' in program
./QThread:16: error: stray '\132' in program
./QThread:16: error: stray '\210' in program
./QThread:16: error: stray '\139' in program
./QThread:16: error: expected declaration before '}' token
In file included from main.cpp:3:
mythread.h:1:1: unterminated #ifndef
make: *** [main.o] Error 1

您的
mythread.h
不包含
#include
,当您自己的可执行文件名为
QThread
时,它会查找您刚刚构建的可执行文件,而不是Qt自己的头文件


您已根据Jeremy的评论重新命名了该程序,并且您已经看到它可以正常工作。这是一个很好的选择。另一种方法是确保包含
,而不是
“QThread”
(如果您还没有这样做),并确保设置编译器标志,以便在Qt的头目录之前不搜索当前目录。

在我看来,编辑器以解析器不支持的模式保存文件。检查保存选项。您可以发布.pro文件的内容吗?看起来编译器可能试图编译一个.O文件,就像它是C++源代码一样。.pro文件应包含程序中的.cpp文件列表,而不是.o文件。另外,将可执行文件命名为QThread可能是不明智的,因为这也是Qt类的名称;也许这会混淆qmake/make系统中的某些内容。@JeremyFriesner我更改了程序名,它工作了,谢谢。
QThread.pro
######################################################################
# Automatically generated by qmake (2.01a) Mon Jan 21 10:22:12 2013
######################################################################

TEMPLATE = app
TARGET = 

# Input
HEADERS += mythread.h
SOURCES += main.cpp mythread.cpp