lua中使用rust代码

。_饼干妹妹 提交于 2020-01-13 07:08:05

lua中使用rust代码

原文:https://blog.csdn.net/weixin_44259356/article/details/103816756
参考链接:https://my.oschina.net/u/3703365/blog/3082160
参考链接中有一点不同,可能是版本太老,我生成的是dll文件。

cargo.toml

[lib]
name = “double_input”
crate-type = [“staticlib”, “cdylib”]

lib.rs

#![crate_type = “dylib”]

#[no_mangle]
pub extern fn double_input(input: i32) -> i32 {
input * 2
}

编译rust

cargo build --release

lua代码

print("Hello World")

ffi = require("ffi")

ffi.cdef[[
int32_t double_input(int32_t n);
]]
rust_lib = ffi.load("double_input.dll")
n = 1234567
print(rust_lib.double_input(n))

注:这里使用的dll文件为编译好的rust项目生成。
如果遇到:module ‘ffi’ not found:
参考以下链接,配置luajit
https://www.cnblogs.com/cord/p/10872869.html

运行lua

luajit test.lua 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!