Makefile чистый на окнах - PullRequest
       7

Makefile чистый на окнах

1 голос
/ 03 июня 2011

Сейчас я изучаю использование make-файлов, и я создал следующий make-файл (я работаю в Windows с помощью компилятора командной строки Visual Studio)

CC = cl
CFLAG = /EHsc
test_database.exe: composer.obj database.obj test_database.obj
    $(CC) test_database.obj database.obj composer.obj
test_database.obj: test_database.cpp
    $(CC) $(CFLAGS) -c test_database.cpp
composer.obj: composer.cpp composer.h
    $(CC) $(CFLAGS) -c composer.cpp
database.obj: database.cpp database.h
    $(CC) $(CFLAGS) -c database.cpp

.PHONY : clean
clean:
    rm -f *.obj

Когда бы я ни вызывал make clean, я получал make: Interrupt/Exception caught (code = 0xc00000fd, addr = 0x4ff283)Я не совсем уверен, что я делаю не так.Я могу использовать make для компиляции программы без проблем. Я просто получаю сообщение об ошибке, когда нацеливаюсь на clean.rm существует на моей машине и находится на пути, поскольку я использую его все время.Я пробовал это с DEL также с идентичной ошибкой.Буду признателен за любую помощь, указывающую мне правильное направление.

Make Version is GNU Make 3.80

Ответы [ 3 ]

2 голосов
/ 16 сентября 2011

Это ошибка в make, вызванная парантезами в переменной PATH.Смотри http://okolovich.info/interruptexception-caught-with-code-0xc00000fd/

2 голосов
/ 03 июня 2011

Ваш make-файл в порядке, команда nmake clean корректно вызывает команду.

Версия на используемой вами марке не работает.Вы можете либо использовать утилиту nmake.exe, которая поставляется с Visual Studio или Windows SDK, либо получить версию make, которая работает.

1 голос
/ 05 февраля 2014

Недавно я столкнулся с той же проблемой. В моем случае кажется, что экранирование звездочкой (то есть rm -rf \*.obj) решило проблему. Хотя моя версия make немного новее: GNU Make 3.81.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...