gpt4 book ai didi

rust - 使 String 类型与 ARM 兼容?

转载 作者:行者123 更新时间:2023-11-29 07:53:36 24 4
gpt4 key购买 nike

我需要为 ARM 设备编译程序。它似乎在这里失败了,也许是因为 ARM 上的类型差异?

unsafe { Ok(String::from(try!(CStr::from_ptr(buf.as_ptr() as *const i8).to_str()))) }

错误是:

694 |         unsafe { Ok(String::from(try!(CStr::from_ptr(buf.as_ptr() as *const i8).to_str()))) }
| ^^^^^^^^^^^^^^^^^^^^^^^^^ expected u8, found i8
|
= note: expected type `*const u8`
found type `*const i8`

什么是类型差异,我该如何解决?

最佳答案

您可能想使用 std::os::raw::c_char而不是 i8。 (虽然这可能不是从中获取类型的正确位置。libc::c_char 似乎也存在。)

基本问题是 C 中的 char 类型可以有符号或无符号,具体取决于平台,这反射(reflect)在外部函数接口(interface)中。理想情况下,您希望找到一种无需明确提及类型即可进行转换的方法。

关于rust - 使 String 类型与 ARM 兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47684111/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com