使String类型与ARM兼容?

时间:2017-12-06 21:57:13

标签: rust arm

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

buildscript {
    repositories {
        maven { url "http://objectbox.net/beta-repo/" }
    }
}

错误是:

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

什么是类型差异以及如何解决?

1 个答案:

答案 0 :(得分:5)

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

基本问题是C中的char类型可以根据平台进行签名或取消签名,并且反映在外部函数接口中。理想情况下,您希望找到一种方法来进行转换,而无需明确提及类型。