Я компилирую некоторый код C ++ во время выполнения, который затем вызываю в некой системе плагинов, см. Также мой другой вопрос.Я создаю исходный код, записываю его в файл, компилирую этот файл и записываю вывод в другой файл.Однако этот процесс выглядит уродливым, поэтому я надеялся получить какой-то ввод.
//Open a file
std::ofstream fout("SOURCECODEPATH");
//Write actual function to file
fout << "extern \"C\" void testFunc(float testArray[]) {\n"
" testArray[0] = 1.0;\n"
" testArray[1] = 2.0;\n"
" testArray[2] = 3.0;\n"
"}" << std::endl;
//Compile the file, and write the stdout and stderr to PROCESSOUTPUTPATH using "&>"
system("c++ -shared -fPIC -std=c++14 SOURCECODEPATH -o COMPILEDLIBRARYPATH &> PROCESSOUTPUTPATH");
//Read PROCESSOUTPUTPATH (not implemented)
В настоящее время он создает 3 файла: SOURCECODEPATH , COMPILEDLIBRARYPATH и PROCESSOUTPUTPATH .Однако я бы предпочел не иметь SOURCECODEPATH и PROCESSOUTPUTPATH , записанные в ОС, а скорее использовать их для внутреннего использования.Поэтому передайте (?) Исходный код процессу и верните результат (желательно разделить на stderr и stdout).Какой самый простой способ сделать это?