Я пишу небольшую программу для удовольствия. Я решил использовать MinGW (только C), make и Notepad ++ как упражнение, не использующее причудливые IDE для изменения. Пока все так хорошо и весело.Portable make clean rule
(MinGW == Я работаю на Windows.)
Теперь, так как программа компилируется с ванильным C Я думал, что делает его полностью портативным. MinGW сделать и НКУ умна достаточно создать программу из правила:
myprog: myprog.o other.o
$(CC) $(CFLAGS) $(LDFLAGS) $^ -o [email protected]
Очевидно, так как я на окнах компилятор создает myprog.exe
. Это довольно разумно и делает все очень портативным.
Что касается standard targets пойдите, я хочу хотя бы реализовать clean
, так как я на самом деле использую это правило. Теперь чистая цель, которая на самом деле работает на Windows, выглядит следующим образом:
clean:
rm myprog.exe *.o
Это правило точно не будет работать в среде POSIX, потому что программы не имеют расширения там. (PSOIX: думаю, GNU/Linux)
Есть ли портативный способ реализовать чистый, не делая много фу?
До сих пор я не нашел действительно полезной документации по этой проблеме. Если вы посмотрите, как autoconf и automake решат проблему, они вводят шаблон @[email protected]
. Но это зависит от длительной конфигурации кода, проверяющего среду.
Что не так с 'rm -f myprog myprog.exe * .o'? – Beta
Когда-либо пытались выполнить это на Linux? Не работает ... Вопрос касается полезности; правило отлично работает на mingw. – rioki
Да, у меня есть, и он работает на моей версии (2.6.18-194.8.1.el5). Какая у вас ошибка? (И почему вы хотите его выпить?) – Beta