1. 程式人生 > >androidstudio2.3.1 ndk 編譯錯誤error: clang frontend command failed with exit code 70 (use -v to

androidstudio2.3.1 ndk 編譯錯誤error: clang frontend command failed with exit code 70 (use -v to

問題描述

android ndk編譯公司舊程式碼時出現如下錯誤:
clang.exe: error: clang frontend command failed with exit code 70 (use -v to see invocation)

原因分析&查詢

複製出Gradle Console中的所有記錄,在sublime中檢視

FAILED: D:\Android\sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe  --target=mips64el-none-linux-android --gcc-toolchain=D
:/Android/sdk/ndk-bundle/toolchains/mips64el-linux-android-4.9/prebuilt/windows-x86_64 --sysroot=D:/Android/sdk/ndk-bundle/sysroot -Dzoncare_lib_EXPORTS -isystem D:/Android/sdk/ndk-bundle/sysroot/usr/include/mips64el-linux-android -D__ANDROID_API__=21 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -fintegrated-as -Wa
,--noexecstack -Wformat -Werror=format-security -O0 -fno-limit-debug-info -fPIC -MD -MT CMakeFiles/zoncare-lib.dir/src/main/cpp/ECG_Calcur.c.o -MF CMakeFiles\zoncare-lib.dir\src\main\cpp\ECG_Calcur.c.o.d -o CMakeFiles/zoncare-lib.dir/src/main/cpp/ECG_Calcur.c.o -c D:\Android\PROJECTS\AIO\zoncarediag\mylibrary\src\main\cpp\ECG_Calcur
.c fatal error: error in backend: Cannot select: 0x14a66530: ch = store<ST8[%91490](align=4)> 0xd8d3428, 0x5cbc840, 0x10622f50, undef:i64 0x5cbc840: i64,ch = load<LD8[FixedStack-10]> 0x5e65a88, FrameIndex:i64<-10>, undef:i64 0x5cbc568: i64 = FrameIndex<-10> 0x5cbc978: i64 = undef 0x10622f50: i64 = add FrameIndex:i64<1>, Constant:i64<136> 0x10621a30: i64 = FrameIndex<1> 0x10622ee8: i64 = Constant<136> 0x5cbc978: i64 = undef In function: print_refer clang.exe: error: clang frontend command failed with exit code 70 (use -v to see invocation) Android clang version 5.0.300080 (based on LLVM 5.0.300080) Target: mips64el-none-linux-android Thread model: posix

發現提示print_refer函式有問題

檢視print_refer函式

void print_refer(struct med_state  print_refer_value)
{
...
}

問題出在此函式的入參上,入參傳入了一個大的結構體,導致異常

解決辦法

修改入參為結構體指標

void print_refer(struct med_state  * print_refer_value)
{
...
}

原文連結