因为我喜欢折磨自己,在将GCC 4.7移植到Android之后,我决定立即尝试将GCC 4.8移植到Android。Cross-Native GCC 4.8 Build:libcpp错误:long long无效转换为off_t(又名long int)
我构建的libcpp部分期间遇到了以下错误:
../../gcc-4.8/libcpp/files.c:725:27: error: cannot convert 'long long int*' to 'off_t* {aka long int*}' for argument '7' to 'unsigned char* _cpp_convert_input(cpp_reader*, const char*, unsigned char*, size_t, size_t, const unsigned char**, off_t*)'
我的问题是:如果这种转换可能吗?
编辑:我最初发布了一个演员需要被写入而不是依赖于隐式转换的答案,但是根据我在做这件事后遇到的问题,我删除了它。
这里是原来的有问题的代码:
file->buffer = _cpp_convert_input (pfile,
CPP_OPTION (pfile, input_charset),
buf, size + 16, total,
&file->buffer_start,
&file->st.st_size);
这里是我试过投(注:我只有℃的基本理解):
off_t ot = (off_t) file->st.st_size
使用上述结果投中一“在目标设备上运行时,来自cc1二进制文件的错误地址“错误。
C中的对象指针类型之间没有隐式转换(除了'void *')。 – ouah
编辑:等待...根据口袋C(我发布后发布),隐式转换是可能的标量和指针类型之间。对象指针和指针类型有区别吗? – MonaLisaOverdrive