しらいです。 In article <KATE.03Jan20120434 _at_ flash.tokyo.pfu.co.jp>, KATAYAMA Yoshio <kate _at_ pfu.fujitsu.com> wrote: >>> CFLAGS = -Dhoge=\"hello\" >>> で行きませんか? >CFLAGS = -Dhoge='"hello"' > >でも OK です。 portability を考えるなら後者の方が無難ですね。Makefile 内 の「\」の扱いについては実装がまちまちで、「\」を幾つ追加した ら /bin/sh に「\」として渡されるのかが OS や version によっ て異なるからです。 この例でも、環境によっては「CFLAGS = -Dhoge=\\"hello\\"」 と記述する必要が出て来ると思います。場合によっては 4 つかも。 最近の fj.unix の記事でもありましたが、Makefile 内の「\」 の扱いは POSIX の中ですら二転三転しているようですから、Linux という platform に限った場合でも version 依存が出て来る可能 性がありますね。 一方の「'」や「"」は Makefile の command line 中では meta character 扱いになっていないので、そのまま shell に渡される ことが期待出来ると思います。 # 因みに「hello」の部分を可変にするにはこうします。 # HELLO = hello # CFLAGS = -Dhoge='"'$(HELLO)'"' -- しらい たかし
References:
- [fol] gccコンパイルオプションについてKoji Tsubota
- [fol] Re: gcc コンパイルオプションについてAkira Kakuto
- [fol] Re: gcc コンパイルオプションについてkounoike
- [fol] Re: gcc コンパイルオプションについてKATAYAMA Yoshio
- Prev by Date: [fol] Re: man page (Re: Re: gcc コンパイ
- Next by Date: [fol] Re: gcc コンパイルオプションについて
- Previous by thread: [fol] Re: man page (Re: Re: gcc コンパイ
- Next by thread: [fol] Re: gcc コンパイルオプションについて
- Indexes:[Main][Thread]