0

gccを使用して、(たとえば)python / php / perlコードを含むファイルのマクロを展開するにはどうすればよいですか?

以下を含むファイルを持つ

#define foo very important stuff
#define feast Christmas

I should take care of some foo for feast.

私は使用しようとしました:

$ gcc -x c++ -E - < text.txt > output.txt

しかし、これを表示します:

$ cat output.txt
# 1 "<stdin>"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "<stdin>"



I should take care of some very important stuff for Christmas.

gccがそれらのコメントと(可能であれば)余分な改行を追加するのを避ける方法は?

4

2 に答える 2

1

GNUCプリプロセッサのオンラインドキュメントからのこの警告に注意する必要があります

Cプリプロセッサは、C、C ++、およびObjective-Cソースコードでのみ使用することを目的としています。過去には、一般的なテキストプロセッサとして悪用されてきました。Cの字句規則に従わない入力でチョークします。たとえば、アポストロフィは文字定数の先頭として解釈され、エラーが発生します。また、Cファミリの言語にとって重要ではない入力の特性を保持していることに依存することはできません。Makefileが前処理されると、すべてのハードタブが削除され、Makefileは機能しなくなります。

出力の「#」行は、問題が最も少ない可能性があります。

m4などの別のツールを使用した方がよい場合があります。

于 2010-12-23T12:19:30.863 に答える
0

gccに特定のオプションがあるかどうかはわかりません。

grepで後処理できます

$ gcc -x c++ -E - < text.txt | grep -v '^#' > output.txt
于 2010-12-23T12:10:12.340 に答える