c++ - 在 c++ 中构建和运行 c++ -- c++ 脚本(而不是 lua)

标签 c++ embedded-script

目前,我在我的 C++ 代码中嵌入了 lua。

我想知道 C++ 是否也能做到这一点。这样我就可以在脚本中传递对象和使用库。为此,我想我需要主 C++ 代码中的以下内容:

  1. 执行脚本的运行
  2. 编译脚本
  3. 运行脚本
  4. 脚本将指针传递给它的数据对象
  5. 脚本完成,程序使用数据对象。

这可能吗?小例子?

对我来说,它很有用,因为我进行了不想停止但又想即时添加功能的科学计算。我还看到这对于不想关闭但想进行更改的 C++ 服务器很有用。

最佳答案

您可以选择使用某种 C++ 解释器,但它们不能做所有事情。 C++ 是最难实现(如果不是最难的话)的语言之一。想想宏、模板和所有其他让 C++ 如此强大的东西,我们知道它们真的很难解析和理解,除此之外,我们还进行了优化,可以为我们创建如此快速和精简的代码,所以解释器如何如此强大,了解这一切?即使是最著名的编译器也可能无法理解所有标准,或者至少在理解复杂的 C++ 代码方面存在错误。在我的一个大量使用 MSVC 2010 模板的项目中,编译代码大约需要 10 分钟!所以解释器通常会简化他们的任务并且只支持完整 C++ 的一个子集,所以如果你对此很满意,请使用一些解释器。我从未使用过其中之一,但我听说 cint 很好。

另一种选择是你有一个像g++这样的免费编译器,实际上将你的代码编译成某种共享库,然后动态加载它并根据某种配置从中调用一些函数。

关于c++ - 在 c++ 中构建和运行 c++ -- c++ 脚本(而不是 lua),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993322/

相关文章:

c++ - 单个列表中的多个类类型

javascript - 从元素中删除/重置继承的 css

C++——赋值运算符的签名不正确?

c++ - NVidia CUDA 6.5 项目构建错误

reactjs - Next.JS - Gist 嵌入在通过危险的 SetInnerHTML 呈现的 Markdown 中,仅在整个页面加载后显示,而不是 React 路由加载

c# - 逐行编写Lua脚本

java - 为什么我在使用 "from javax.mail import *"时无法解析 jython 中的公共(public) java 对象?

c++ - STL:卷积两个 unary_function 参数

c++ - volatile 是否作为优化的编译器障碍