1

我正在研究构建一个系统的可能性,当查询到达服务器时,我们将查询转换为 C++ 代码,将其编译为共享对象并运行代码。

编译本身的时间需要很短才值得。我的代码可以生成相应的 c++ 代码,但是如果我必须将它写在磁盘上,然后调用 gcc 来获取一个 .so 文件然后运行它,这似乎不值得。

有什么方法可以让我编译一小段代码并快速准备好作为共享对象(在查询到达之前可能有很长的启动时间)。如果这样的工具有一个许可许可证,那就更棒了。

编辑:我有一种用户可以使用的非常严格的查询语言,因此安全威胁无关紧要。我自己的代码将查询转换为 C++ 代码。提到clang的答案是完美的。

4

2 回答 2

3

在 JIT 模式下运行 Clang 应该提供您需要的速度,示例可以在这里找到,另一方面,安全是另一回事......

Ch还添加了 JIT,并将其视为解释器,它可能提供更简单的沙盒/受控环境。

于 2012-09-24T07:10:33.187 回答
2

除了 Necrolis 答案之外,还有专门的 C++ 解析器Cling。可能会派上用场。

于 2012-09-24T08:06:16.417 回答