我需要为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()))) }
什么是类型差异以及如何解决?
答案 0 :(得分:5)
您可能希望使用std::os::raw::c_char
代替i8
。 (虽然这可能不是从中获取类型的正确位置。libc::c_char
似乎也存在。)
基本问题是C中的char
类型可以根据平台进行签名或取消签名,并且反映在外部函数接口中。理想情况下,您希望找到一种方法来进行转换,而无需明确提及类型。