2011-10-19 10 views
7

Visual Studioからプリプロセッサの出力(.i)を生成していますが、実際のビルドも実行します。コンパイラがビルドを正常に進めるのを止めずに.iファイルを出力するフラグの組み合わせはありますか?前処理されたコードを出力してコンパイルする方法(Visual Studio)

これは現在のところC++ですが、これを後でCUDAで使用したいと思うかもしれません。そのため、コマンドラインを必要とするのではなくVisual Studio内で動作する回答が好きです(CUDAでも動作しない限り)。

これは、プロジェクト - >プロパティ - >構成の小道具 - > C/C++ - >プリプロセッサ - >前処理されたファイルの生成/再構築を行う時間を節約することです。特に、プリプロセッサは2回実行する必要があるので、パート1の.iファイルを何らかの形で生成し、パート2のファイルをコンパイルするという解決策は問題ありません。

私が使用しているのVisual Studioの正確なバージョンは、VS 2008 Expressの

+0

** VS 2088 Express ** cool! –

+1

@ K-ballo:VS2088はとてもクールです。残念ながら、コピーを取るためにタイムマシンを購入する必要があるので、非常に高額です。 –

+0

@ K-balloありがとう – Raffles

答えて

2

でコードがダンププリプロセッサ出力が何であるか定義によって構築された後に、前処理をダンプするカスタムビルドステップや新しいターゲットを追加することができます構築されます。

+0

どちらの方法でも、ビルドはファイルを2回読み込む必要がありますか?しかし、それは遅い部分です! –

+0

カスタムターゲットは、プリプロセッサをダンプするターゲットに依存する限り、* .iを構築することができます。 – rerun

+0

* blink * Whoa ...これはうまくいく可能性があり、リンカがもっと知っているために、より効率的なファイルを生成する可能性があります。 –

0

前処理を行うカスタムビルド設定を作成し、実際にコンパイル/リンクされたバージョンに続いて前処理バージョンをビルドするバッチビルドを定義することができます。

+0

OKこれは理想的ですね。 "カスタムビルド設定"とは、前の人が言った "カスタムビルドステップ"を意味しますか?もしそうなら、良い進展があります:-) – Raffles

0

上記スイッチ/ P例 - CL/CのSAMPLE.Cを

を使用することは、同じ名前(sample.I)と.Iファイルを生成します。 .Iファイルをコンパイルするには、.Iファイルの名前を.Cに変更し、次にcl/cを実行してオブジェクトファイルをコンパイルして生成します。

関連する問題