相关疑难解决方法(0)

如何在Rust FFI中发布常量字符串?

我想让Rust库const char *向C 公开一个静态字符串,以便与现有接口(特别是librsync)兼容.也就是说,C头文件有

extern char const *my_string;
Run Code Online (Sandbox Code Playgroud)

在C中,图书馆就是这样

char const *my_string = "hi";
Run Code Online (Sandbox Code Playgroud)

在Rust我尝过类似的东西

pub static my_string: *const libc::c_char = unsafe { "hi\0" as *const libc::c_char };
Run Code Online (Sandbox Code Playgroud)

但这抱怨

error: casting `&'static str` as `*const i8` is invalid
Run Code Online (Sandbox Code Playgroud)

似乎我不能使用CString等因为它们不是编译时常量表达式.

ffi rust

6
推荐指数
1
解决办法
1038
查看次数

标签 统计

ffi ×1

rust ×1