ndk+cmake编译出现xxxx.app.main | debug | armeabi-v7a Compiler exited with error code 1:

一、概述

   问题现象:

    在做NDK开发时,项目能正常运行。kotlin/java端不报错。ndk端(cpp)会出现找不到系统头文件的情况。如:<jni.h>文件都找不到。但是此时项目运行起来是一点问题没有。

    此时的在ndk的cpp文件夹下写代码是没有智能提示的,那效率是相当的低,果断不能。

    使用cmake的同步功能报错如下:

xxxx.app.main | debug | armeabi-v7a 
Compiler exited with error code 1:
 D:\ndk\android-ndk-r16\toolchains\llvm\prebuilt\windows-x86_64\bin\clang++.exe
 -xc++ --target=armv7-none-linux-androideabi 
 --gcc-toolchain=D:/ndk/android-ndk-r16/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64 
 --sysroot=D:/ndk/android-ndk-r16/sysroot -DJCMPlayer_EXPORTS 
 -isystem D:/ndk/android-ndk-r16/sources/cxx-stl/llvm-libc++/include 
 -isystem D:/ndk/android-ndk-r16/sources/android/support/include 
 -isystem D:/ndk/android-ndk-r16/sources/cxx-stl/llvm-libc++abi/include 
 -isystem D:/ndk/android-ndk-r16/sysroot/usr/include/arm-linux-androideabi 
 -D__ANDROID_API__=23 -g -DANDROID -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -march=armv7-a -mfloat-abi=softfp -mfpu=vfpv3-d16 -fno-integrated-as -mthumb -Wa,
 --noexecstack -Wformat -std=c++11 -frtti -fexceptions -std=c++11 -O0 -fno-limit-debug-info 
 -fPIC E:\tony\demo\opengl\xxxx\app\src\main\cpp\CCOpenGLShader.cpp 
 -fpch-preprocess -v -dD -E Android clang version 5.0.300080 (based on LLVM 5.0.300080) 
 Target: armv7-none-linux-android Thread model: posix InstalledDir: 

  

二、解决办法

  问题原因:排查到最后发现是cmake的版本不对。cmake版本太低导致的。

  1.原始环境如下:

as:AndroidStudio Giraffe 2022.3.1 Patch2
ndk:ndk-r16
gradle:7.2
cmake:3.10.2

  2.更改后的环境

as:AndroidStudio Giraffe 2022.3.1 Patch2
ndk:ndk-r16
gradle:7.2
cmake:3.18.1 (把cmake改成了本机最新版本)

   3.更细cmake环境

问题1:cmake版本过低
    CMake 3.12 or higher is required. You are running version 3.10.2
问题2:使用的cmake版本没有在sdk中,下载下就行了
    [CXX1300] CMake '3.18.2' was not found in SDK, PATH, or by cmake.dir property.

 

 

posted on 2024-09-11 09:51  飘杨......  阅读(14)  评论(0编辑  收藏  举报