lua中使用rust代码

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 
发布了46 篇原创文章 · 获赞 6 · 访问量 9395

猜你喜欢

转载自blog.csdn.net/weixin_44259356/article/details/103816756