我有这个使用Makefile编译的C++项目,有时候(我的猜测)有一些缺失包含,我得到一个神秘的“错误2”消息,并停止make过程。
我怀疑失踪包括,因为这是它包含一个不存在的头文件时发生的第三次。Make/gcc神秘错误2:如何获得更多信息?
它看起来像这样:
---- Build tmp/foo.o ----
---- Build tmp/bar.o ----
---- Build tmp/toto.o ----
---- Build tmp/tata.o ----
make: *** [build_Project] Error 2
这是推动我坚果,因为即使是使用详细的命令(其中每个G ++调用时显示),我什么都看不到。
我希望这家伙呕吐一些错误的消息,如“找不到标题X”或“未定义的参考Y”,但没有什么。
我的gcc编译选项是-O0 -Wall -Werror -Wno-write-strings -fno-rtti -fno-exceptions
,如果有帮助。
啊,而且我们使用包括依赖的Makefile中招:
ifneq ($(strip $(DEPENDS)),)
ifneq ($(MAKECMDGOALS),clean)
-include $(DEPENDS)
endif
endif
虽然这是记载的东西,我怀疑我的问题有事情做与这种依赖包容。
如果你已经无意中发现了这个问题,随时对此置评...
在此先感谢。
编辑: 好,后一点的播放,在-include $(DEPENDS)
前抑制-
给了我一些更多的信息(生成文件不站上缺少包括文件)。
make[1]: *** No rule to make target « foo.h », necessary for « tmp/bar.d ». Stop.
现在的缺点是,当我启动make
的第一次,我得到应包含每个依赖文件missing bar.d file
消息(这就是为什么我们在第一时间把-
)。 任何解决方案?
我认为我们需要看到更多的makefile例如你如何调用gcc-并且我倾向于显示命令编译出于这种原因 – Mark 2011-03-22 11:01:42
如果你设置了一个变量,一些makefile会关掉花哨的输出。例如'automake',如果你运行'make V = 1',还会尝试'make VERBOSE = 1',或者检查'Makefile'以获得更好的想法。 – 2011-03-22 11:57:37