Собрать и запустить C++ в скриптах C++ - C++ (вместо lua)
В настоящее время я встраиваю lua в свой код на С ++.
Интересно, возможно ли то же самое с C++. Таким образом, я могу передавать объекты и использовать библиотеки в скрипте. чтобы сделать это, я думаю, мне понадобится следующее из основного кода C++:
- выполнить запуск сценария
- скомпилировать скрипт
- запустить скрипт
- скрипт передает указатель на свои объекты данных
- Сценарий выполнен, и программа использует объекты данных.
Это возможно? маленький пример?
Для меня это полезно, так как я запустил научный расчет, который я не хочу останавливать, но хочу добавить функциональность на лету. Я также считаю, что это полезно для серверов в C++, которые не хотят выключаться, но хотят внести изменения.
1 ответ
Вы можете использовать какой-то интерпретатор C++, но они не могут делать все. C++ - один из самых сложных для реализации (если не так сложных) языков. Просто подумайте о макросах, шаблонах и обо всех других вещах, которые делают C++ настолько мощным, насколько мы знаем, что их действительно трудно анализировать и понимать, и помимо всего этого у нас есть оптимизация, которая создает для нас такие быстрые и тонкие коды, так как интерпретатор может быть такой мощный и все это понимаешь? Даже самые известные компиляторы могут не понимать весь стандарт или, по крайней мере, иметь ошибки для понимания сложных кодов C++. В одном из моих проектов, где интенсивно используются шаблоны с использованием MSVC 2010, сборка кода заняла около 10 минут! Таким образом, интерпретаторы обычно упрощают свою задачу и поддерживают только подмножество полного C++, поэтому, если вы не против, используйте некоторый интерпретатор. Я никогда не использовал один из них, но я слышал cint
это хорошо.
Другой вариант, у вас есть бесплатный компилятор, как g++
и на самом деле скомпилировать ваш код в какую-то разделяемую библиотеку, а затем динамически загрузить ее и вызвать из нее некоторые функции, основываясь на какой-то конфигурации.