[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[fol] Re: gcc コンパイルオプションについて


 しらいです。

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)'"'

-- 
                                               しらい たかし

この情報があなたの探していたものかどうか選択してください。
yes/まさにこれだ!   no/違うなぁ   part/一部見つかった   try/これで試してみる

あなたが探していた情報はどのようなことか、ご自由に記入下さい。特に「まさにこれだ!」と言う場合は記入をお願いします。
例:「複数のマシンからCATV経由でipmasqueradeを利用してWebを参照したい場合の設定について」
References: