目前,我在我的 C++ 代码中嵌入了 lua。
我想知道 C++ 是否也能做到这一点。这样我就可以在脚本中传递对象和使用库。为此,我想我需要主 C++ 代码中的以下内容:
- 执行脚本的运行
- 编译脚本
- 运行脚本
- 脚本将指针传递给它的数据对象
- 脚本完成,程序使用数据对象。
这可能吗?小例子?
对我来说,它很有用,因为我进行了不想停止但又想即时添加功能的科学计算。我还看到这对于不想关闭但想进行更改的 C++ 服务器很有用。
最佳答案
您可以选择使用某种 C++ 解释器,但它们不能做所有事情。 C++ 是最难实现(如果不是最难的话)的语言之一。想想宏、模板和所有其他让 C++ 如此强大的东西,我们知道它们真的很难解析和理解,除此之外,我们还进行了优化,可以为我们创建如此快速和精简的代码,所以解释器如何如此强大,了解这一切?即使是最著名的编译器也可能无法理解所有标准,或者至少在理解复杂的 C++ 代码方面存在错误。在我的一个大量使用 MSVC 2010 模板的项目中,编译代码大约需要 10 分钟!所以解释器通常会简化他们的任务并且只支持完整 C++ 的一个子集,所以如果你对此很满意,请使用一些解释器。我从未使用过其中之一,但我听说 cint
很好。
另一种选择是你有一个像g++
这样的免费编译器,实际上将你的代码编译成某种共享库,然后动态加载它并根据某种配置从中调用一些函数。
关于c++ - 在 c++ 中构建和运行 c++ -- c++ 脚本(而不是 lua),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12993322/