Кто -нибудь, у кого есть опыт встраивания CINT в приложение C ++?

StackOverflow https://stackoverflow.com/questions/3114949

  •  29-09-2019
  •  | 
  •  

Вопрос

я говорю о Рут Синт.

Я разрабатывал игру в C ++ Wich, использует Python для программирования ИИ. Как бы я ни любил Python и насколько легко он делает программирование ИИ (генераторы и FP действительно сексуальны), он делает не тривиальные алгоритмы. так медленный.

Затем я вспомнил, что где -то читал о Cint и о том, как его можно встроить. Теперь мне нужна ваша помощь, чтобы решить, реализовать Cint в качестве альтернативной системы сценариев. С Python я использую Boost :: Python, Wich делает его почти безоговорочным, чтобы разоблачить классы и объекты Как только вы привыкнете к этому. Анкет Есть ли такая легкость с Cint?

Спасибо.

Это было полезно?

Решение

Я написал классы, составленные против ROOT, а затем обратился к ним непосредственно в интерпретаторе. Это легко, хотя все такие классы должны быть получены из TObject. Анкет Чего я не знаю, так это то, является ли это требованием CINT или корневым требованием. Вам может быть лучше всего спросить Форум поддержки Roottalk Cint


Чтобы ответить на вопросы в комментариях:

  • Вывод из TObject может быть подержанным: ваши классы могут быть получены из чего -то, полученного от TObject, это просто должно быть ТОБАЙТ.
  • Root предоставляет инструмент (makecint) и некоторые макросы (ClassDef и ClassImp) для поддержки интеграции вашего кода с интерпретированной средой выполнения: напишите свой CLA, выводящий его из TObject; включить ClassDef макро в заголовке и ClassImp Макро в исходном файле; бежать makecint над кодом, чтобы генерировать всю утомительную интеграцию невесенность, затем составьте свой код и сгенерированный код для общего объекта (или, я полагаю, DLL в окне Windows); запустить переводчика; загрузить библиотеку с помощью .L; и ваш класс полностью интегрирован с интерпретированной средой (завершение TAB будет работать и все это). Сборка может быть автоматизирована с помощью make (и предполагаемые другие инструменты). ## Опять же, ## Я не знаю, сколько из этого принадлежит корни и сколько для Cint. Но это все с открытым исходным кодом, поэтому вы можете зацепить и адаптировать то, что вам нужно.
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top