2017-04-19 8 views
2

私は、Visual Studioでプログラミングされたコンパイラディレクティブの完全なプログラムを扱っています。コンパイル全体でプリプロセッサディレクティブに従う方法

私はいくつかの変更を加えましたが、未解決の外部コンパイラ/リンカーエラーが発生しました。

これは、その特定の関数の実装を検出していないと思われるコンパイラ指令によって発生したと考えており、これを調べるために、コンパイルプロセス全体で#ifdefコンパイラ指令に従ってください。

私は既に/Pの設定を使用しようとしましたが、Outputウィンドウにコンパイラ指令が表示されません。

誰でもこの方法を知っていますか?

+0

Visual Studioでは、コードブロックをマクロで無効にする必要がありますか? – DeiDei

+0

確かに静的なコンパイラ指令の場合にのみ有効ですが、私の場合は '#define'で始まり、' #define'が実行された後に再び...、私は自分自身を失っているので(おそらく未解決の外部)、私はプリプロセッサのコンパイル出力が何が起こっているかを私に見せてくれることを期待しています。 – Dominique

答えて

1

オプションを使用していますが、docの出力では、出力が.iのファイルに出力される(出力ウィンドウにはないと思われる)と記載されています。

さらに、マップファイルを生成することで、リンカーのエラーについてのヘルプを見つけることができます。 /MAP (Generate Mapfile)を参照してください。

+0

ありがとうございます、@Phil、それはうまくいかないようです:私は* .iファイルを持っていません。 – Dominique

+0

出力ウィンドウにコンパイラコマンドが実行されていますか?なぜファイルが生成されていないのか、いくつかの手掛かりがあるかもしれません。 –

+0

シンプルなコンソールアプリケーションで '/ P'オプションを有効にしてみました。 '.i'ファイルはビルド出力ディレクトリ(例えば、私の場合は' Debug')にあります。リンクは副作用として失敗します(コンパイラ/プリプロセッサの問題のトラブルシューティング後に問題をトラブルシューティングします)。 –

関連する問題