因爲我喜歡折磨自己,在將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