Cygwin: сделайте установку актуальной проблемой

find команда является основным инструментом для рекурсивных операций файловой системы. Используйте -type d выражение для сообщения find Вы интересуетесь нахождением каталогов только (и не простые файлы). Версия GNU find поддержки -empty тест, таким образом,

$ find . -type d -empty -print

распечатает все пустые каталоги ниже Вашего текущего каталога.

Использовать find ~ -… или find "$HOME" -… основывать поиск на Вашем корневом каталоге (если это не Ваш текущий каталог).

После того, как Вы проверили, что это выбирает корректные каталоги, использовать -delete удалить все соответствия:

$ find . -type d -empty -delete
1
30.08.2013, 14:50
2 ответа

Windows определяет, какие файлы являются исполняемым файлом своим расширением. Собственные исполняемые файлы должны иметь расширение .exe. Cygwin содержит некоторое волшебство так, чтобы, когда Вы обращаетесь к файлу install и нет никакого файла тем именем, оно пробует install.exe. Это делает это даже в контекстах, которые не являются о выполнении, потому что, когда программа ищет метаданные файла, библиотека не имеет никакого способа знать, намеревается ли программа выполнить его позже.

Таким образом, если существует названный файл install.exe в текущем каталоге, make видит его и думает, что это - цель install правило. Если install.exe более свежо, чем предпосылки install правило, make определяет (правильно с его точки зрения), что там не имеет отношения.

Можно добавить строку .PHONY: install к make-файлу. Это говорит, делают это install цель не является реальным файлом, и составьте завещание, игнорируют любой файл тем именем.

С другой стороны, переименуйте или переместитесь install.exe из пути.

2
27.01.2020, 23:29
  • 1
    Это применяется также, если нет никакого расширения. Просто произошедший со мной с текстовым файлом УСТАНОВКИ. Переименованный и весь хороший :) –  LaintalAy 21.07.2017, 18:06

Обычно это означает, что Вы уже сделали make install и это не должно делать этого снова.

Если Вы думаете, что действительно необходимо восстановить сборку, затем пробуют это:

make clean
make
make install

ПРЕДУПРЕЖДЕНИЕ: Что был бы стандартный способ сделать это, но у автора Вашего проекта, возможно, были другие идеи.

1
27.01.2020, 23:29

Теги

Похожие вопросы