Vulkan入门——编译Shaderc

编译 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

Vulkan入门——编译Shaderc_第1张图片

一、错误原因

查看官方Shaderc相关介绍后,确认错误的原因是未编译Shaderc。
AndroidStudio在编译Vulkan-Samples相关工程时,无法找到libshaderc.a依赖包导致报错。

二、问题解决

我们需要参考官方Shaderc相关描述,执行Shaderc编译:

  1. 进入/sources/third_party/shaderc/目录;
  2. 按官方描述执行如下编译命令:
# 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
  1. 编译完成后的检查:
    完成编译后,将在/sources/third_party/shaderc/目录下生成如下文件:
# 编译后生成的文件
include/
  shaderc/
    shaderc.h
    shaderc.hpp
libs/
  /
    {all of the abis}
       libshaderc.a

Vulkan入门——编译Shaderc_第2张图片

三、参考

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

你可能感兴趣的:(Vulkan,vulkan,shaderc,libshaderc.a)