2013-04-08 54 views
2

我尝试编译并行线程的例子,但我得到了以下错误:的Makefile并行线程

make: *** No rule to make target `example.cpp', needed by `example.o'. Stop. 

这是我的makefile:

CC = g++ 
CCFLAGS = -Wall 

example: example.o 
     $(CC) $(CCFLAGS) -o example example.o -pthread 

example.o: example.cpp 
     $(CC) $(CCFLAGS) -c example.cpp -pthread 

clean: 
     - rm *.o 
     - rm example 

我包括-pthread标志,我不知道为了编译还需要什么。有人有主意吗?非常感谢你。

+3

'$(CC)'之前,你有标签或空格吗? – 2013-04-08 09:32:49

+0

我在那里有选项卡。 – KateMak 2013-04-08 09:35:34

+1

如果你在这里复制粘贴你的makefile内容,那么你没有标签。 – 2013-04-08 09:37:01

回答

5

,因为它说,有在当前目录中没有example.cpp。

在当前目录中执行ls并在此处发帖。

+0

当我发布这个,我真的很累,我没有意识到我有例子,不是example.cpp ......谢谢!!!我现在感觉非常慢,但我真的很高兴它的工作! – KateMak 2013-04-08 14:36:21

0
+0

用MingW使用'-pthread'只是产生一个警告,而不是一个错误,这是否会在其他系统中产生错误? – 2013-04-08 09:39:39

+0

我试过用-lpthread,i t没有工作=( – KateMak 2013-04-08 09:42:22

+0

以及它似乎然后问题是在生成文件格式。我只是通过复制pesting来尝试它,但得到相同的错误,然后尝试重写相同的东西,很好地工作,对格式非常严格,你能否检查在编辑器中是否没有用空格替换标签(来自我以前的经验) ,检查http://stackoverflow.com/questions/8559033/make-no-rule-to-make-target-gcc-needed-by-all-stop – abasu 2013-04-08 10:06:58