#[no_mangle]
pub extern "C" fn migrate(hdl: *mut usize, err: &mut MaybeUninit<usize>) {
// ...
}
我正在尝试在Windows 64位系统上的bin
crate 中导出上述函数。 rustup show
的输出如下:nightly-x86_64-pc-windows-msvc (default)
rustc 1.51.0-nightly (a2f8f6281 2021-01-27)
我无法在构建的二进制文件(exe)中找到该符号。有什么方法可以强制将符号导出到.exe中?
最佳答案
我有一个怪异的解决方法:生成.dll以及.exe
在cargo.toml
中,我们定义当前的条板箱以输出同样由exports.rs
生成的lib
[lib]
name = "exports"
path = "src/exports.rs"
crate-type = ["cdylib"]
在exports.rs
中:#[no_mangle]
pub extern "C" fn migrate(hdl: *mut usize, err: &mut MaybeUninit<usize>) {
// ...
}
构建时,目标目录为以下工件:engine.exe
exports.dll
并且符号出现在exports.dll中
关于windows - 从Rust Windows二进制条板箱导出功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65975934/