Каков простой и эффективный способ компиляции функции во время выполнения в C ++ в Windows / Visual Studio?

Скажем, у меня есть простой, автономный код для некоторой функции в простом C только с POD типы.

Код хранится в std::string,

Как я могу конкретно скомпилировать код во время выполнения и получить вызываемый объект?

Мне действительно нужна собственная, эффективная компиляция, а не что-либо, основанное на виртуальных машинах.

Спасибо.

0

Решение

C ++ обычно компилируется заранее, как в случае с реализацией Microsoft. Для этого вам потребуется установленная цепочка инструментов, и в этом случае это можно назвать другим процессом, а затем что-то сделать с результатом. Если вы хотите распространять набор инструментов, это будет зависеть от условий лицензии. Вы можете создать библиотеку DLL и загрузить ее, рискуя ошибками в этом сбое вашего процесса, или создать EXE-файл и взаимодействовать другими способами.

Обратите внимание, что в любом случае трудно обеспечить защиту от вредоносного кода, и многие другие платформы будут запрещать его.

Есть, однако, некоторые C ++ переводчики вокруг, хотя я не использовал ни одного. Это полностью отдельные реализации от Microsoft, которые вы можете посмотреть. Хотя интегрировать их, скорее всего, будет непросто.

Это одна из причин, по которой программы на C и C ++ часто используют другой язык для сценариев времени выполнения, например Lua, Python или многие другие.

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]