【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
生活随笔
收集整理的這篇文章主要介紹了
【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 一、報錯信息
- 二、解決方案
一、報錯信息
下載 7zip 源碼 , 下載頁面 https://sourceforge.net/projects/p7zip/files/ ,
解壓源碼 , 進入 D:\develop\7zip\p7zip_16.02\CPP\ANDROID\7zr\jni 目錄 , 使用 ndk-build 編譯 7z 工具 , 報如下錯誤 ;
[armeabi-v7a] Compile++ thumb: 7zr <= XzCrc64Reg.cpp [armeabi-v7a] Compile++ thumb: 7zr <= ErrorMsg.cpp D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:18:10: error: case value evaluatesto -2147467263, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case E_NOTIMPL : txt = "E_NOTIMPL"; break ;^ ../../..\Common/MyWindows.h:83:19: note: expanded from macro 'E_NOTIMPL' #define E_NOTIMPL ((HRESULT)0x80004001L)^ D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:19:10: error: case value evaluatesto -2147467262, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case E_NOINTERFACE : txt = "E_NOINTERFACE"; break ;^ ../../..\Common/MyWindows.h:84:23: note: expanded from macro 'E_NOINTERFACE' #define E_NOINTERFACE ((HRESULT)0x80004002L)^ D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:20:10: error: case value evaluatesto -2147467260, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case E_ABORT : txt = "E_ABORT"; break ;^ ../../..\Common/MyWindows.h:85:17: note: expanded from macro 'E_ABORT' #define E_ABORT ((HRESULT)0x80004004L)^ D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:21:10: error: case value evaluatesto -2147467259, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case E_FAIL : txt = "E_FAIL"; break ;^ ../../..\Common/MyWindows.h:86:16: note: expanded from macro 'E_FAIL' #define E_FAIL ((HRESULT)0x80004005L)^ D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:22:10: error: case value evaluatesto -2147287039, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case STG_E_INVALIDFUNCTION : txt = "STG_E_INVALIDFUNCTION"; break ;^ ../../..\Common/MyWindows.h:87:31: note: expanded from macro 'STG_E_INVALIDFUNCTION' #define STG_E_INVALIDFUNCTION ((HRESULT)0x80030001L)^ D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:23:10: error: case value evaluatesto -2147024882, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case E_OUTOFMEMORY : txt = "E_OUTOFMEMORY"; break ;^ ../../..\Common/MyWindows.h:88:23: note: expanded from macro 'E_OUTOFMEMORY' #define E_OUTOFMEMORY ((HRESULT)0x8007000EL)^ D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/jni/../../../../CPP/Windows/ErrorMsg.cpp:24:10: error: case value evaluatesto -2147024809, which cannot be narrowed to type 'DWORD' (aka 'unsigned int') [-Wc++11-narrowing]case E_INVALIDARG : txt = "E_INVALIDARG"; break ;^ ../../..\Common/MyWindows.h:89:22: note: expanded from macro 'E_INVALIDARG' #define E_INVALIDARG ((HRESULT)0x80070057L)^ 7 errors generated. make: *** [D:/001_Programs/001_Android/002_Sdk/Sdk/ndk-bundle/build//../build/core/build-binary.mk:478: D:/develop/7zip/p7zip_16.02/CPP/ANDROID/7zr/obj/local/armeabi-v7a/objs/7zr/__/__/__/__/CPP/Windows/ErrorMsg.o] Error 1D:\develop\7zip\p7zip_16.02\CPP\ANDROID\7zr\jni>ndk-build clean二、解決方案
當前交叉編譯該 p7zip 的時間是 2021 年 04 月 28 日 , 該代碼最后更新時間是 2016 年 7 月 ,
代碼比較老了 , 使用最新的 22.0.7026061 版本的 ndk , 就會報上述錯誤 ;
嘗試使用舊版本的 16.1.4479499 ndk 進行編譯 , 編譯完成 ;
NDK 版本不匹配 ;
總結
以上是生活随笔為你收集整理的【错误记录】p7zip 交叉编译 Android 版本 NDK 报错 ( error: case value evaluates to -2 , which cannot be narrowed )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【错误记录】p7zip 交叉编译 And
- 下一篇: 【Android 安装包优化】p7zip