编译 Vulkan-Samples时,遇到了如下shaderc编译报错。
ninja: error: '/Users/xiaxl/Library/Android/sdk/ndk/21.1.6352462/sources/third_party/shaderc/libs/c++_static/armeabi-v7a/libshaderc.a', needed by '../../../../build/intermediates/cmake/debug/obj/armeabi-v7a/lib-vulkan-lib.so', missing and no known rule to make it
查看官方Shaderc相关介绍后,确认错误的原因是未编译Shaderc。
AndroidStudio在编译Vulkan-Samples相关工程时,无法找到libshaderc.a
依赖包导致报错。
我们需要参考官方Shaderc相关描述,执行Shaderc编译:
/sources/third_party/shaderc/
目录;# linux或Mac终端操作系统:
../../../ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk \
APP_STL:=c++_static APP_ABI=all libshaderc_combined -j16
# Windows操作系统:
..\..\..\ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk ^
APP_STL:=c++_static APP_ABI=all libshaderc_combined -j16
/sources/third_party/shaderc/
目录下生成如下文件:# 编译后生成的文件
include/
shaderc/
shaderc.h
shaderc.hpp
libs/
/
{all of the abis}
libshaderc.a
AndroidDev:Vulkan使用入门
https://developer.android.google.cn/ndk/guides/graphics/getting-started?hl=zh
AndroidDev:编译Shaderc
https://developer.android.google.cn/ndk/guides/graphics/shader-compilers?hl=zh-cn