选择C++的嵌入式脚本语言

9 投票
6 回答
12301 浏览
提问于 2025-04-16 18:41

我想选择一种嵌入式脚本语言,用在C++上。它需要能够连接数据库,比如Oracle。我这个主程序是一个服务器应用,它会把原始数据传给脚本。脚本会解析这些数据并执行一些特定的逻辑。同时,它还会更新数据库。最后,脚本会把处理后的原始数据作为结果返回。你能帮我选择一种合适的语言吗?谢谢!

6 个回答

8

把这个内容保存为 test.c:

#include <Python.h>

int
main(int argc, char *argv[])
{
  Py_Initialize();
  PyRun_SimpleString("from time import time,ctime\n"
                     "print 'Today is',ctime(time())\n");
  Py_Finalize();
  return 0;
}

运行这个命令(前提是你已经安装了 Python 2.7):

gcc test.c -o test -I/usr/include/python2.7 -lpython2.7

现在 Python 已经嵌入进来了。这整个过程我花了不到一分钟,所以我很难理解为什么有人说嵌入它需要很多努力。

这个例子来自于 http://docs.python.org/extending/embedding.html

我建议使用 Python 而不是 Lua,尽管 Lua 也不错。

12

Lua 已经被提到过,使用 luabind 可以让你获得更像 C++ 的接口。
你也可以看看 chaiscript。它是为了更好地融入 C++ 而设计的。

20

Lua 是一种设计用来嵌入其他程序中的语言,它有一个简单的接口。相比之下,Python 和 Ruby 是更通用的编程语言,嵌入它们的过程要复杂得多。光这一点就让我更倾向于使用 Lua。

撰写回答