2016-06-23 3 views
0

これは簡単なことかもしれませんが、私は一日中それに固執しています。私はCygwinとWinAVRを使ってarduinoライブラリのいくつかのファイルをコンパイルしています。私はmakefileを使いたいですが、ファイル名のスペースに問題があります(少なくとも私はそうだと思います)。私はそれをバイパスするためのリンクを作ったが、それはどちらも動作していない!ファイル名にはすでにスペースに関するいくつかの質問がありますが、どれも私を助けませんでした。ファイル名にスペースを入れてCygwinを作ります

私のメイクファイル:ワイルドカードの後

#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 . [email protected] 

echo: 
    echo $(SRC) 

、$ SRCは空です。このメイクファイルを実行すると空の "エコー"が返ってきます。

編集:

リンクは

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

私はいかが

+0

[GNUでファイル名をスペースで処理できるかどうか](http://stackoverflow.com/questions/9838384/can-gnu-make-handle-filenames-with-spaces) –

+0

他の質問には答えませんなぜワイルドカードが私が作成したシンボリックリンクではうまくいかなかったのですか – riverrun

答えて

1
とても混乱しています理由はそれで '1!' の仕事、などの

簡単なコマンドで作成されました古いWindowsのDOS名(8.3)の使い方は?

/c/Program\ Files\ \(x86\)/の代わりに/c/Progra~2/を使用してください。

:64ビットWindows Progra~1では、「プログラムファイル」を指しますとProgra~2は、「プログラムファイル(x86の)」を指します。 32ビットシステムで実行している場合は、Progra~1を使用してください。

+0

すごく素敵なトリックです! cygwin( "ls /cygdrive/c/Progra~2/Arduino/hardware/arduino/avr/cores/arduino/*.c"は正しいファイルリストを取得します)でも私のために働きますが、ワイルドカードでも動作しません: ( – riverrun

関連する問題