我正在使用 JUCE 设计音乐训练游戏——一个多平台 C++ 框架,它允许我编写接近线路的音频/视频。
然而,我已经用 Python 编写了我的游戏玩法(控制流/数据处理)——它很复杂,我希望不断改变它,以便我可以尝试不同的游戏玩法。Python 非常适合这种快速原型设计工作。
所以我希望我的(平台独立,所以 Win/OSX/Lin/iOS/And)C++ 启动 Python 运行时,为其提供一个 .py 文件,然后在该 .py 中调用各种函数。此外,我希望能够从 .py 回调 C++ 代码。
这是相关的官方 Python 文档:https ://docs.python.org/2/extending/extending.html
这是一篇 CodeProject 文章: http: //www.codeproject.com/Articles/11805/Embedding-Python-in-CC-Part-I
但是,它们似乎都没有解决多平台问题。
该技术似乎是与库 libpython.a 和#include 链接,其中包含用于启动运行时环境、加载脚本、执行 python 代码等的各种功能。
但是这个 libpython.a 肯定需要每个平台单独编译吗?如果是这样,这将不是一个非常干净的解决方案,那么我是否可以将 Python 源代码添加到我的项目中并让它编译 .a?
我该怎么做呢?
编辑:https ://wiki.python.org/moin/boost.python/EmbeddingPython
EDIT2:我很确定在这里尝试引入完整的 CPython 源代码是矫枉过正——一定有人在不支持任何系统调用/多线程/花哨的东西的 C/C++ 中做了一些精简的 Python 实现—— - 仅通过 Python 语法逐行工作。通过https://wiki.python.org/moin/PythonImplementations查看,但我看不到明显的候选人。
EDIT3:https://github.com/micropython/micropython应该添加到最后一页,但它看起来仍然不是我所追求的