2013-03-21 88 views
1

我的最终可执行文件(这是在unix中)将是proj07。gcc makefile不会编译

proj07: /user/cse320/Projects/project07.driver.o proj07.support.o 
    gcc -Wall /user/cse320/Projects/project07.driver.o proj07.support.o 

proj07.support.o: proj07.support.c 
    gcc -c proj07.support.c 

这将创建proj07.support.o,但编译后不存在proj07。我没有得到一个错误,所以我的错误必须是简单的,但我似乎无法弄清楚。

下面是输出:

gcc -c proj07.support.c 
gcc -Wall /user/cse320/Projects/project07.driver.o proj07.support.o 

而且我是用一个静态的驱动程序来测试我的文件,这就是为什么路径就是这样

+2

默认情况下,编译的输出名为a.out。你必须添加一个-o标志给gcc来改变它。查看gcc的man手册(man gcc)。 – fuz 2013-03-21 23:57:06

回答

3

你可能有一个a.out可执行文件。将-o [email protected]添加到您的第一个gcc事件中,您应该没问题。

+0

工作!谢谢!那只是给gcc添加一个速记标志?是的,我确实有一个a.out,但我没有想到要检查它,因为我在我所在的目录中编译了其他内容,所以我知道它并没有改变。很高兴知道,尽管 – tausch86 2013-03-22 00:00:13

+0

Nope'$ @'是'makefile'中的简写符号,代表规则的目标。 – 2013-03-22 00:01:09