我有一个用pybind11包装的C ++实现的解释器。作为解释程序启动的一部分,它将一系列共享库加载到C ++ unordered_map中,该函数用作函数查找表(FLT)。当解释器遇到函数调用时,它将命中FLT并执行与该函数的字符串名称关联的代码。
当解释器在Python外部运行 时,它将正确执行脚本。当解释器运行 inside python时,它失败并崩溃,原因是说在FLT中不存在在解释器的共享对象中定义的函数。我不知道为什么会这样。但是我给人留下的印象是,Python打破了某些东西,因为在Python之外,事情按预期运行。
我想重点介绍一下我的运行时环境。