10


3

スタンドアロンのCプリプロセッサはありますか? 私はコンパイラ/リンカを必要としません、そして私はフルキットをインストールすることができません。

私が提供するいくつかの定義とインクルードパスを使用して、いくつかのヘッダーの前処理されたバージョンを取得できるようにしたいです。

編集:私は利用可能なものに頼ることはできません。 * cl gcc *、なし。 最低限必要なことは、マクロ(特に#ifdefと#if)を処理するものです。

編集:私はWindows XPコンピュータでこれを使用しています。

7 Answer


8


cppはあなたが探しているものです。 それがgccディストリビューションの外部で得られるかどうかはわかりません

CPP(1)GNU CPP(1)

NAME cpp  -  Cプリプロセッサ

形式cpp [-Dmacro [= defn] ...] [-Umacro] [-Idir ...] [-Wwarn ...] [-M | -MM] [-MG] [-MFファイル名] [-MP ] [-MQ target ...] [-MT target ...] [-P] [-fno作業ディレクトリ] [-x言語] [-std =標準] infile outfile

最も有用なオプションだけがここにリストされています。残りについては下記を参照してください。

説明Cプリプロセッサは、cppとも呼ばれ、コンパイル前にプログラムを変換するためにCコンパイラによって自動的に使用されるマクロプロセッサです。 これはマクロを定義できるのでマクロプロセッサと呼ばれます。


6


http://www.boost.org/doc/libs/1_40_0/libs/wave/doc/introduction.html[Boost Wave]をご覧ください。 これは、アプリケーションではなくライブラリとして構築されたプリプロセッサですが、それをスタンドアローンプログラムに変換するためのラッパーを配置するのはかなり簡単なはずです(あなたがすることの大部分は物事を接続することですから読み書きする)。


6


http://math.mit.edu/~auroux/software/gpp.html [GPP、Generic Pre Processor]を見てください。 これはカスタマイズ可能ですが、C / Cの前処理を行うための定義済みの設定が付属しているようです。

編集:-Cが使用する設定であるように見えます

_ -C cpp互換モード。 これは、gppの動作が> cppの動作に最も近いモードです。 デフォルトモードとは異なり、メタマクロの展開は>行の先頭でのみ行われ、Cのコメントと文字列は理解されます。 _


6


mppポータブルcプリプロセッサ

_  — -- mcppプロジェクトは、情報技術振興機構(IPA)の2002年の「探索的ソフトウェアプロジェクト」の1つに選ばれ、2003年のプロジェクトに再び選ばれました。 プロジェクトの成果について、著者は最高クラスのプログラマーの一人として評価されました<< _

 — -- _ _


5


多くのコンパイラには、あなたが望むことをするコマンドラインオプションがあります。

例えば、GCCは -E、MSVCは` / P`です。


3


スタンドアローンのライブラリ cpplibを使ってあなた自身のアプリを_try_構築することができると思いますが、彼らはそれを提供していますが、彼らはそれをそのように使うことを勧めません。 「まだ妥当な安定点には達していない」私はそれがどれほど長い間正しいのかわからない。


2


通常、Cコンパイラは前処理済みのソースを見るためのオプションを提供します。

GCCでは、コメントされているとおり、次のものを使用します。

g -E ...他のオプション... ファイル

いくつかのシステム、特にUnixシステムでは、別の 'cpp’プログラムがあるかもしれません。 MacOS Xでは/ usr / bin / cppとしてインストールされ、GCC(GNU Compiler Collection)の一部です。

場合によっては、邪魔にならない場所にインストールされます。たとえば、Solaris 10では/ usr / lib / cppです。