Сделать в Cygwin с пробелами в именах файлов

Я чувствую, что это может быть просто, хотя я застрял на этом весь день. Я использую Cygwin и WinAVR для компиляции некоторых файлов в библиотеке arduino. Я хочу использовать make-файл, но у меня проблемы с пробелами в именах файлов (по крайней мере, я так думаю). Я сделал ссылку, чтобы обойти это, но это тоже не работает! Уже есть несколько вопросов SO о пробелах в именах файлов, но ни один из них мне не помог.

Мой make-файл:

#ARDUINO_PATH=/cygdrive/c/Program\ Files\ \(x86\)/Arduino/hardware/arduino/avr/cores/arduino
ARDUINO_PATH=./link_to_arduino_dir
SRC=$(wildcard $(ARDUINO_PATH)/*.c)


all: echo $(SRC)

$(SRC):
    avr-gcc -Os -DF_CPU=16000000UL -mmcu=atmega328p -I $(ARDUINO_PATH) -c -o . $@

echo:
    echo $(SRC)

После подстановочного знака $SRC пуст. при запуске этого make-файла будет просто пустое «эхо», а затем возврат.

Изменить:

Ссылка создана с

ln -s /cygdrive/c/Program\ Files\ \(x86\)/Arduino/hardware/arduino/avr/cores/arduino link_to_arduino_dir

С ним работают простые команды типа 'ls', поэтому я так запутался


person riverrun    schedule 23.06.2016    source источник
comment
Возможный дубликат Может ли GNU обработать имена файлов с пробелами?   -  person Eugene Sh.    schedule 23.06.2016
comment
Другой вопрос не отвечает, почему подстановочный знак не работал с символической ссылкой, которую я создал.   -  person riverrun    schedule 23.06.2016


Ответы (1)


Как насчет старого трюка Windows с использованием имен DOS (8.3)?

Вместо /c/Program\ Files\ \(x86\)/ используйте /c/Progra~2/.

Примечание. В 64-разрядной версии Windows Progra~1 будет указывать на «Program Files», а Progra~2 — на «Program Files (x86)». Если вы работаете в 32-битной системе, просто используйте Progra~1.

person Traveling Tech Guy    schedule 23.06.2016
comment
О, это ловкий трюк! У меня работает в cygwin (ls /cygdrive/c/Progra~2/Arduino/hardware/arduino/avr/cores/arduino/*.c получает правильный список файлов), но также не работает с wildcard :( - person riverrun; 23.06.2016