C++コードを生成してコンパイルして実行するプログラムを作成する必要があるため、コード生成部分を終了してGeneratedCode.cppというファイルに書き込んでいます。今私はコンパイル部分に立ち往生している、私は書いた:VC++を使用して生成されたC++コードをコンパイル
system(R"(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat")");
system(R"(call "C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\vcvars32.bat")");
system("cl GeneratedCode.cpp");
まずこれは正しい方法ですか?この件に関する情報は、特にVC++の場合は非常に稀です。そうであれば、IDEを使用しているかどうかに問題があります。
IDEを使用しているとき、「GeneratedCode.cpp(2):致命的なエラーC1034:iostream:パスが含まれていません」というメッセージが表示されます。もちろん私はiostreamヘッダーを使用しています。
exeを直接実行すると、「 'cl'は内部または外部コマンド、実行可能プログラムまたはバッチファイルとして認識されません」というメッセージが表示されます。私はvcvarsall.batとvcvars32.batを呼び出しましたが。
バッチスクリプトで設定された環境は、 'system'によって作成されたコマンドシェルがexitを呼び出すと失われます(' call'はこのコンテキストではno-opです)。 '&& 'を使って、単一のシステムコール内で複数のコマンドを連鎖させたり、プロセス全体のバッチスクリプトを書いて呼び出すことができます。 – doynax
@doynaxどうもありがとうございました。私は今、物事を評価することを願っています。 – Kaaf
誰かがC++コードを生成し、dllにコンパイルして実行するプログラムの完全なコードに興味があるなら、ここで見つけることができます:http://www.cplusplus.com/forum/beginner/206145/#msg977248 – Kaaf