Я хочу динамически скомпилировать файл C / C ++ из кода C #.
Например, у меня есть файл c ++ (test.cpp)
#include <iostream>
using namespace std;
void main()
{
cout << "Hello, world, from Visual C++!" << endl;
}
Вот код C #, где яхочу скомпилировать файл * .cpp.
class Program
{
static void Main(string[] args)
{
var start = new ProcessStartInfo();
start.FileName = @"C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.16.27023\bin\Hostx64\x64\cl.exe";
start.Arguments = @" /EHsc D:\test\test.cpp /out:D:\test\test.exe";
start.UseShellExecute = false;
start.RedirectStandardOutput = true;
string StandardOutput = "";
using (var process = Process.Start(start))
{
// Could be useful to eventually track error
using (var reader = process?.StandardOutput)
{
StandardOutput += reader?.ReadToEnd();
}
}
Console.WriteLine(StandardOutput);
}
}
При выполнении кода выдается следующая ошибка.
Microsoft (R) C / C ++ Оптимизирующая версия компилятора 19.16.27026.1 для x64Авторское право (C) Microsoft Corporation.Все права защищены.
cl: Предупреждение командной строки D9035: опция 'o' устарела и будет удалена в следующем выпуске test.cpp D: \ test \ test.cpp (1): фатальная ошибка C1034: iostream: путь включения не задан