При попытке установить сервер сборки я столкнулся с забавной проблемой, когда все команды cygwin могут запускаться из окна DOS, но иногда не работают при вызове из make. Что еще более странно, так это то, что некоторые делают цели, такие как «очистить», работать, а другие, как «все», не делают.
Вот примерная копия make-файла. Цитирование скрыло форматирование, но вкладки находятся там, где они должны быть, поверьте мне:
.PHONY: all
all: update_autoconstants
/usr/bin/rm -f $(OBJ_DIR)/myfile1.txt
rm -f $(OBJ_DIR)/myfile2.txt
.PHONY: clean
clean:
rm -f $(OBJ_DIR)/*.*
Обратите внимание, что в 'all' один вызов rm имеет полный путь, а другой - нет. Также обратите внимание, что rm-вызов clean не имеет пути.
На это ответ на 'make -C makefile all':
/usr/bin/rm -f ../../obj/myfile1.txt
rm -f ../../obj/myfile2.txt
make: rm: Command not found
make: *** [all] Error 127
т. полный путь работает, нет пути нет. То, что затем начинает вращать мою голову, это «чистая» цель в make без каких-либо путей. это не просто команды cygwin, make также не может найти компилятор. Кажется довольно ясным, что где-то путь был найден, хотя переменная окружения PATH установлена, но только в make - это прекрасно работает из командной строки DOS.
C:\>cygpath --unix c:\programme\cygwin\bin\rm
/usr/bin/rm
Машина работает под управлением немецкого языка Windows Server 2003 в виртуальной машине на VMWare ESX, установка cygwin была сделана вчера, установлена в c: \ program \ cygwin \, а все остальное - чистая ванильная установка Windows.
Есть идеи? Заранее спасибо.