如何高效地将Lua脚本与C共享库进行无缝对接?

2026-04-01 20:372阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计384个文字,预计阅读时间需要2分钟。

如何高效地将Lua脚本与C共享库进行无缝对接?

来自更多Python和CTYPES背景的我,目前正在尝试找出从Lua脚本调用标准C共享库的最佳方法。我曾听说过异形(http://alien.luaforge.net/),但不确定它是否是最新的,或是否定期更新。

我来自更多的 Python和CTYPES背景……我正在尝试找出从Lua脚本调用标准C共享库的最佳方法.

我听说过“异形”(alien.luaforge.net/),但我不确定它是最新的?意思是它定期更新?

例如,我知道他们是一个SQLite Lua库,但是我想说我想调用在编译SQLIte时创建的SQLite共享库?

例如:在我的例子中,lib位于/usr/local/lib/libsqlite3.so中

如果我写一个小的虚拟脚本只是为了看它是否可以加载lib

require "libsqlite3" print "hello"

我收到以下错误:

debian@debian:~/Desktop/SQLite Test$lua sqlite_test.lua lua: error loading module 'libsqlite3' from file '/usr/local/lib/lua/5.2/libsqlite3.so': /usr/local/lib/lua/5.2/libsqlite3.so: undefined symbol: luaopen_libsqlite3 stack traceback: [C]: in ? [C]: in function 'require' sqlite_test.lua:1: in main chunk [C]: in ? debian@debian:~/Desktop/SQLite Test$

这是否意味着Lua不能“开箱即用”调用共享库,而且我必须使用像Alien这样的东西?

我知道我也可以这样编写共享库,它包含Lua头文件,我可以制作“Lua函数”……我只是希望我可以调用盒子上“标准”的共享库.

非常感谢帮助或建议;-)

谢谢

林顿

Lua无法开箱即用.它没有与libffi一起提供,因此不像ctypes那样工作.

从历史上看,lua嵌入到一个应用程序中,该应用程序又将为lua表添加所需的函数,并提供lua堆栈操作来传递和返回参数.

如何高效地将Lua脚本与C共享库进行无缝对接?

Alien是一个libffi改编版,可以使用.

本文共计384个文字,预计阅读时间需要2分钟。

如何高效地将Lua脚本与C共享库进行无缝对接?

来自更多Python和CTYPES背景的我,目前正在尝试找出从Lua脚本调用标准C共享库的最佳方法。我曾听说过异形(http://alien.luaforge.net/),但不确定它是否是最新的,或是否定期更新。

我来自更多的 Python和CTYPES背景……我正在尝试找出从Lua脚本调用标准C共享库的最佳方法.

我听说过“异形”(alien.luaforge.net/),但我不确定它是最新的?意思是它定期更新?

例如,我知道他们是一个SQLite Lua库,但是我想说我想调用在编译SQLIte时创建的SQLite共享库?

例如:在我的例子中,lib位于/usr/local/lib/libsqlite3.so中

如果我写一个小的虚拟脚本只是为了看它是否可以加载lib

require "libsqlite3" print "hello"

我收到以下错误:

debian@debian:~/Desktop/SQLite Test$lua sqlite_test.lua lua: error loading module 'libsqlite3' from file '/usr/local/lib/lua/5.2/libsqlite3.so': /usr/local/lib/lua/5.2/libsqlite3.so: undefined symbol: luaopen_libsqlite3 stack traceback: [C]: in ? [C]: in function 'require' sqlite_test.lua:1: in main chunk [C]: in ? debian@debian:~/Desktop/SQLite Test$

这是否意味着Lua不能“开箱即用”调用共享库,而且我必须使用像Alien这样的东西?

我知道我也可以这样编写共享库,它包含Lua头文件,我可以制作“Lua函数”……我只是希望我可以调用盒子上“标准”的共享库.

非常感谢帮助或建议;-)

谢谢

林顿

Lua无法开箱即用.它没有与libffi一起提供,因此不像ctypes那样工作.

从历史上看,lua嵌入到一个应用程序中,该应用程序又将为lua表添加所需的函数,并提供lua堆栈操作来传递和返回参数.

如何高效地将Lua脚本与C共享库进行无缝对接?

Alien是一个libffi改编版,可以使用.