C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: プリプロセッサ関係のコマンドラインオプションについての疑問


(過去ログ 44 を表示中)

[トピック内 7 記事 (1 - 7 表示)]  << 0 >>

■23446 / inTopicNo.1)  プリプロセッサ関係のコマンドラインオプションについての疑問
  
□投稿者/ ネタ好き未記入 (17回)-(2008/08/15(Fri) 09:55:43)

分類:[C/C++] 

いつもお世話になっています。
今回は、VS2005のプリプロセッサ関係のコマンドラインオプションについて、どうしてもわからない事がありますので質問させていただきます。
私はインクルードファイルの展開が見たくなって、プリプロセッサ系のコマンドラインオプションの
前処理済みファイルの生成:行番号付き (/P)
コメントを残す(/C)
の2つのオプションを指定したところ、プリプロセッサがobjファイルを離さないのか、
リンカで「fatal error LNK1104 〇.objファイルを開けません。」とエラーが出てしまいます。
どうしてもインクルードの展開を見たいのでエラーを避けたいのですが何か良い方法があるでしょうか?
教えて下さい。
引用返信 編集キー/
■23447 / inTopicNo.2)  Re[1]: プリプロセッサ関係のコマンドラインオプションについての疑問
□投稿者/ シャノン (573回)-(2008/08/15(Fri) 10:07:53)
No23446 (ネタ好き未記入 さん) に返信
> いつもお世話になっています。
> 今回は、VS2005のプリプロセッサ関係のコマンドラインオプションについて、どうしてもわからない事がありますので質問させていただきます。
> 私はインクルードファイルの展開が見たくなって、プリプロセッサ系のコマンドラインオプションの
> 前処理済みファイルの生成:行番号付き (/P)
> コメントを残す(/C)
> の2つのオプションを指定したところ、プリプロセッサがobjファイルを離さないのか、
> リンカで「fatal error LNK1104 〇.objファイルを開けません。」とエラーが出てしまいます。
> どうしてもインクルードの展開を見たいのでエラーを避けたいのですが何か良い方法があるでしょうか?
> 教えて下さい。

/P を指定すると .obj が生成されないんじゃないでしょうか?
ビルドエラーが出ても、.i ファイルは出来ていませんか?
ビルドエラーを出したくないなら、ソリューションエクスプローラから対象のソースファイルだけを右クリックして「コンパイル」で。
引用返信 編集キー/
■23448 / inTopicNo.3)  Re[1]: プリプロセッサ関係のコマンドラインオプションについての疑問
□投稿者/ επιστημη (1242回)-(2008/08/15(Fri) 10:13:48)
επιστημη さんの Web サイト
> 前処理済みファイルの生成:行番号付き (/P)
> コメントを残す(/C)
> の2つのオプションを指定したところ、プリプロセッサがobjファイルを離さないのか、
> リンカで「fatal error LNK1104 〇.objファイルを開けません。」とエラーが出てしまいます。

コマンドラインで -P つけてコンパイルするとリンカまでたどり着きません。
プリプロセス後の xxx.i を作った時点で停止します。
# VS2008(VC9)SP1でも同様でした。

プリプロセス出力を得るためだけのプロジェクトを別に建ててはいかがかなーと。

引用返信 編集キー/
■23449 / inTopicNo.4)  Re[2]: プリプロセッサ関係のコマンドラインオプションについての疑問
□投稿者/ ネタ好き未記入 (18回)-(2008/08/15(Fri) 11:07:55)
シャノンさん、επιστημηさん、お二人とも有難うございます。
成程、VSはiファイルを作るとobjファイルを作らないのですね。
MSなんでそんな事を・・・プリプロセッサは前段階のはずじゃw
GCCではOKだったのに。

対応としては、επιστημηさんの案を使わせてもらって、別プロジェクトを建てる事にします。
問題は解決しましたので「解決済み」チェックをつけておきますが、追加情報があったら教えて下さい。
もちろん、プリプロセッサ雑談もOKです。
解決済み
引用返信 編集キー/
■23450 / inTopicNo.5)  Re[3]: プリプロセッサ関係のコマンドラインオプションについての疑問
□投稿者/ επιστημη (1243回)-(2008/08/15(Fri) 11:19:21)
επιστημη さんの Web サイト
> 成程、VSはiファイルを作るとobjファイルを作らないのですね。
> MSなんでそんな事を・・・プリプロセッサは前段階のはずじゃw

-c だとコンパイルで止まるのと同様、
-P だとプリプロセスで止まると解釈していただければ ^^;

解決済み
引用返信 編集キー/
■23451 / inTopicNo.6)  Re[4]: プリプロセッサ関係のコマンドラインオプションについての疑問
□投稿者/ ネタ好き未記入 (19回)-(2008/08/15(Fri) 11:23:55)
No23450 (επιστημη さん) に返信
>>成程、VSはiファイルを作るとobjファイルを作らないのですね。
>>MSなんでそんな事を・・・プリプロセッサは前段階のはずじゃw
>
> -c だとコンパイルで止まるのと同様、
> -P だとプリプロセスで止まると解釈していただければ ^^;
>

成程、VSはそういう思想なんですね。
確かに筋は通っています。
面倒だけどw
解決済み
引用返信 編集キー/
■23452 / inTopicNo.7)  Re[5]: プリプロセッサ関係のコマンドラインオプションについての疑問
□投稿者/ ネタ好き未記入 (20回)-(2008/08/15(Fri) 11:33:17)
報告します。早速Iファイルを読みました。
そしたら空白が多くて吃驚しました。
それで、よく読んでみたら・・・
#lineディレクティブ間が空いていました。
こんな風に

#line 704 "ファイル名"

#line 706 "ファイル名"

思わず笑ってしまいました。

__declspec(deprecated("The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: " "_fcloseall" ". See online help for details.")) __declspec(dllimport)  int __cdecl fcloseall(void);

こういう関数の宣言が#lineディレクティブ間に必要なのはわかりますが、「正確に空行まで表現」する事がとにかく面白く感じてしまいました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -