2013-03-21 3 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 gcc). – fuz

ответ

3

Вы, вероятно, имеют a.out исполняемый файл. Добавьте -o [email protected] к вашему первому gcc, и все должно быть в порядке.

+0

Работал! Благодаря! Это просто добавление сокращенного флага в gcc? И да, у меня был a.out, но я не думал проверять его, потому что я скомпилировал что-то еще в каталоге, в котором я был, поэтому для всех, кого я знал, это не изменилось. Полезно знать, хотя – tausch86

+0

Nope '$ @' является сокращением в 'makefile' для представления цели правила. –

Смежные вопросы