0

cl.exe(Visual Studio コンパイラ)のラッパーを C++ で作成しました。これを行うPATHために、Visual Studio がcl.exe最初のものを見つけるように環境変数を変更しました。myで、取得したパラメーターを使用しcl.exeて real を実行するプロセスを作成します。cl.execl.exe

これの目的は、実際の出力をフィルタリングして、cl.exe何もできない警告を取り除くことです。「64 ビットの確率の問題を検出する」は素晴らしいのでオンにしたいのですが、警告が表示されます。

警告:

cl : コマンド ライン警告 D9035 : オプション 'Wp64' は廃止され、将来のリリースで削除される予定です

この特定の警告を削除する方法について何日も検索しましたが、コードや通常の警告のようなオプションでオフにできる警告ではありません。

問題: Visual Studio が my を実行しcl.exe、次に mycl.exeが realcl.exeを実行しますが、それ以降、 mycl.exeは出力を受け取りません。私は実際のもの以外のものを呼び出すことによってこれをテストしました、cl.exeそして私cl.exeは出力を完全に制御しています...

いずれかのcl.exeファイルからの出力は、Visual Studio の出力ボックスに表示されますがcl.exe、実際のファイルからの出力を受信しなくなりましたcl.exe...

で出力を処理するためにパイプを使用していますcl.exeが、実際のcl.exe.

cl.exe出力を管理しないのはなぜですか? Visual Studio は my のことを忘れて、cl.exeどうにかして実際のものにアタッチしますか?

cl.exeまた、この警告を取り除くためのラッパーを作成する以外の解決策はありますか?

4

2 に答える 2

1

私はそれを理解しました。

ビジュアル スタジオのこの環境変数は、実際の cl.exe にシグナルを送り、その出力をビジュアル スタジオに送信するために何らかの形で使用されます。

VS_UNICODE_OUTPUT=4209

これをクリアすると、アプリケーションが出力を再び処理できるようになります。

ご協力いただきありがとうございます...!

于 2011-09-12T15:23:52.717 に答える
0

「本物」をリダイレクトしているように見えますが、そうではcl.exe stdoutありませんstderr。そしてstderr、まさにコンパイラの警告が表示されると予想される場所です。

于 2011-09-11T02:07:30.917 に答える