2013-08-16 30 views
0

我有以下设置为我的项目:Makefile来查看,在绝对路径有错误的文件

~/proj -> includes makefile and other stuff 
~/proj/headers -> includes c header files 
~/proj/source -> includes C source files 

当执行使在主目录中的文件夹〜/凸出错误显示,像这样的文件名:

"source1.c" error variable...etc 

怎么可能让错误的文件的绝对路径显示。事情是这样的:

~/proj/source/source1.c" error variable etc... 

这是一个错误的例子:

Dependencies for mem_init.c 
Compiling mem_init.c 
"mem_init.c", line 513: warning: implicit function declaration: init_mem (E_NO_IMPLICIT_DECL_ALLOWED) 
cc: acomp failed for mem_init.c 
+0

没有向我们显示实际的错误,并告诉我们它产生的错误,我不知道我们可以帮助这里。 –

+0

我加了一个例子Etan。 – SFbay007

+0

谢谢。这就是我所设想的。见@疯狂科学家的答案。 –

回答

1

这是根本不可能的,因为它没有制作一部打印这些错误:这是你的编译器。你想要问的是如何(或者如果)让你的编译器在错误信息中显示绝对路径。当然,为了提出这个问题,你必须指定你正在使用的编译器。

如果您将命令行上的源文件的绝对路径传递给您的编译器,那么您的编译器可能会在其错误消息中使用相同的路径。也就是说,如果您运行cc -o foo.o foo.c,则您的错误消息将与foo.c有关,但是如果您运行的是cc -o foo.o /home/me/proj/source/foo.c,则您的错误消息将与/home/me/proj/source/foo.c有关。

如果这是真的,那么你就可以改变你的化妆规则类似(如果你使用GNU使足够新复古的):

%.o : %.c 
     $(CC) $(CFLAGS) $(CPPFLAGS) -c -o [email protected] $(abspath $<) 

或什么的。