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