Lua脚本调用C共享库的最佳方法是什么?

Lua脚本调用C共享库的最佳方法是什么?,第1张

概述我来自更多的 Python和CTYPES背景……我正在尝试找出从Lua脚本调用标准C共享库的最佳方法. 我听说过“异形”(http://alien.luaforge.net/),但我不确定它是最新的?意思是它定期更新? 例如,我知道他们是一个SQLite Lua库,但是我想说我想调用在编译SQLIte时创建的SQLite共享库? 例如:在我的例子中,lib位于/usr/local/lib/libs 我来自更多的 Python和CTYPES背景……我正在尝试找出从Lua脚本调用标准C共享库的最佳方法.

@H_404_8@

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

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

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

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

@H_404_8@

require "libsqlite3"print "hello"

我收到以下错误:@H_404_8@

@H_404_8@

debian@debian:~/Desktop/sqlite Test$lua sqlite_test.lualua: 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_libsqlite3stack traceback:    [C]: in ?    [C]: in function 'require'    sqlite_test.lua:1: in main chunk    [C]: in ?debian@debian:~/Desktop/sqlite Test$

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

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

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

谢谢@H_404_8@

林顿@H_404_8@解决方法 Lua无法开箱即用.它没有与libffi一起提供,因此不像ctypes那样工作.

@H_404_8@

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

AlIEn是一个libffi改编版,可以使用.@H_404_8@ 总结

以上是内存溢出为你收集整理的Lua脚本调用C共享库的最佳方法是什么?全部内容,希望文章能够帮你解决Lua脚本调用C共享库的最佳方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1228078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存