赞
踩
Android Studio SDK manager管理器中截止目前最新的Cmake版本为3.18.1,如下图
编译时出现警告:
C/C++: debug|arm64-v8a :Call Stack (most recent call first):
C/C++: debug|arm64-v8a : D:/android_sdk/ndk/23.1.7779620/build/cmake/android.toolchain.cmake:55 (include)
C/C++: debug|arm64-v8a : D:/MyWork/2022/android/app/.cxx/Debug/25n33124/arm64-v8a/CMakeFiles/3.18.1-g262b901-dirty/CMakeSystem.cmake:6 (include)
C/C++: debug|arm64-v8a : D:/MyWork/2022/android/app/.cxx/Debug/25n33124/arm64-v8a/CMakeFiles/CMakeTmp/CMakeLists.txt:2 (project)
C/C++: debug|arm64-v8a :CMake Warning at D:/android_sdk/ndk/23.1.7779620/build/cmake/android-legacy.toolchain.cmake:416 (message):
C/C++: debug|arm64-v8a : An old version of CMake is being used that cannot automatically detect
C/C++: debug|arm64-v8a : compiler attributes. Compiler identification is being bypassed. Some
C/C++: debug|arm64-v8a : values may be wrong or missing. Update to CMake 3.19 or newer to use
C/C++: debug|arm64-v8a : CMake's built-in compiler identification.
警告内容为:正在使用无法自动检测编译器属性的旧版本的 CMake。 正在绕过编译器标识。 某些值可能错误或缺失。 更新到 CMake 3.19 或更高版本,以使用 CMake 的内置编译器标识。
下载最新版本的CMake(CMake截止发稿最新稳定版为3.22.3)
下载最新版本的ninja
假设条件
local.properties
#在最后一行添加下面的内容
cmake.dir="E\:\\cmake"
模块build.gradle文件
#在android节点中添加externalNativeBuild(只要在android节点中即可,位置随意),如下
android {
//设置CMake
externalNativeBuild{
cmake{
#指定cmake版本
version "3.22.3"
#指定CMakeLists.txt,相对路径
path 'src/main/cpp/CMakeLists.txt'
}
}
}
[CXX1301] Could not get version from cmake.dir path '"E:\cmake"'.
xcopy /S /Y e:\cmake D:\android_sdk\cmake\3.22.3
local.properties不定义cmake.dir
#不需要定义cmake.dir
#cmake.dir="E\:\\cmake"
模块build.gradle文件保持不变
#在android节点中添加externalNativeBuild(只要在android节点中即可,位置随意),如下
android {
//设置CMake
externalNativeBuild{
cmake{
#指定cmake版本
version "3.22.3"
#指定CMakeLists.txt,相对路径
path 'src/main/cpp/CMakeLists.txt'
}
}
}
题外话local.properties中ndk.dir已弃用,并将在将来的版本中删除。还是老实在Android Studio SDK manager管理器中下载使用吧。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。