2013-07-16 73 views
2

我无法获取此生成文件错误消失。我已经尝试过地球上的每一种语法,但我无法弄清楚什么是错误的。恒定的生成文件错误

我的makefile文件内容如下:

huffmanCodeGenerator: main.o 
g++ -o huffmanCodeGenerator main.o 

main.o: main.cpp ReadFile.h HuffmanCode.h ConstructTree.h WriteFile.h 
g++ -c main.cpp 

ReadFile.o: ReadFile.cpp ReadFile.h 
g++ -c ReadFile.cpp 

HuffmanCode.o: HuffmanCode.cpp HuffmanCode.h 
g++ -c HuffmanCode.cpp 

ConstructTree.o: ConstructTree.cpp ConstructTree.h 
g++ -c ConstructTree.cpp 

WriteFile.o: WriteFile.cpp WriteFile.h 
g++ -c WriteFile.cpp 

clean: 
&nbps rm *.o huffmanCodeGenerator 

我有所有这些文件在我的目录中,我不断收到

error 2 - the system cannot find the file specified.

这里是我的目录和错误的截图: makefile error

关于如何解决这个问题的任何建议?我不在乎语法有多漂亮或多么正确。只要它使。

+3

在窗户上 - 可能是灾难的食谱。你正在运行什么样的版本?您使用的是gcc的版本和版本(mingw/cygwin/other)? –

+0

它看起来像它本身找不到'g ++'。你的'PATH'中有'g ++'吗? –

+2

一旦你超越了这个障碍,我想你需要在你的'Makefile'的前两行列出更多的目标文件。 (即不仅仅是'main.o') –

回答

4

我看到的第一个问题是您的前两行不正确。链接器需要所有的目标文件,而不仅仅是main.o来链接它们。其次,你确定你的Windows知道g ++的路径吗?例如,如果你尝试g ++ --help in cmd会发生什么? (不知道这个,但我在Unix上运行它)。

第三,这类似于您的问题:Internal Builder: Cannot run program "g++": The system cannot find the file specified

link:导致你需要一个结论: 1)有G ++ exe文件在当前文件夹或 2)有它在你的PATH

+0

我认为如果windows像其他windows cmd行程序一样,windows可能会想'g ++ /?'而不是'--help'。 –

+0

“g ++”的参数几乎没有关系。它要么吐出一些与g ++有关的信息,要么吐出指示它不被识别为有效命令的东西。 –

+0

是的,我遗漏了链接器的所有其他目标文件,这是问题的一部分。另一部分是minGW,我卸载并重新安装它,一切都解决了。我认为它可能刚刚过时。我有一段时间没有用过它。谢谢你的帮助! –