というプロジェクトをコンパイルするために、Makefile
をCygwin
に書き込もうとしています。 一部の環境変数は、Windowsで定義されています(一部のSDKへのパスなど)。例えば、SDKPATH C:\MySDKPath
と言ってください。CygwinのMakefileと環境変数
のMakefileの中で、私はSDKの他のものの間でディレクトリ、含めるアクセスするには、このパスを使用しています:ターゲットルールで
CFLAGS := -I$(SDKPATH)/include
: $(CC) $(CFLAGS) $< -o [email protected]
を私の問題は、make
後ということですそれをC:\MySDKPath/include
に展開し、それを引数としてコンパイラに渡すと、引数は明らかに意図ではないC:MySDKPath/include
に展開されます。
環境変数を実際に変更することはできません。これは、SDKによって設定されているため、誰もがそれを調整する必要があるため、あらゆる種類の新しい問題が発生します。私はいくつかの迅速かつ汚れた検索を行い、(MYSDKPATH := $(patsubst C:%,/cygdrive/c%,$(subst \,/,$(SDKPATH)))
のように)交換することができますが、この可能性の高い一般的なケースを処理するきれいで確立された方法がないかと思います。
迷子になっているバックスラッシュは1つだけですか、いくつかのパスにはありますか? – Beta
@Beta:* my *マシンにはいくつかありますが、それは環境変数なのでマシンに依存していますので、どれくらいあるか分かりません。 –