2017/10/11

[c/c++]gccの-Dオプションで文字列を指定する

以前、INIファイル形式を読込みたいので、ライブラリを使った記事を書いた。

コメントとして「#」を許容させるためにあれこれやっていたのだが、ソースを見ると行頭の「;」と「#」はコメント扱いのようだ。。。
https://github.com/benhoyt/inih/blob/master/ini.c#L125

マクロの「INI_INLINE_COMMENT_PREFIXES」は、インラインだから、行の途中で見つかった場合にコメントとする文字のようだ。


前回はMakefile自体を変更したが、よそのgithubに入っているMakefileを変更するのは避けたい。
そういうときは変数が使えるようになっていると、なんとかできる。
inihでは「EXTRACCFLAGS」が外部用に用意されているようだった。

$ EXTRACCFLAGS="-g -O2 -D'INI_INLINE_COMMENT_PREFIXES=\"#\"' -DINI_STOP_ON_FIRST_ERROR=1" make -f Makefile.static

文字列は、シングルクオーテーションで囲むのがよさそうだった。
Makefile中ではないので、#をエスケープしなくても大丈夫だ。


シングルクオーテーションで囲むのは、-Dで関数マクロ形式を指定する場合の説明に載っていたやり方を真似しただけなので、もしかしたら文字列はもっと簡単なやり方があるのかもしれん。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。