인프런 커뮤니티 질문&답변

133c96d님의 프로필 이미지
133c96d

작성한 질문수

삼각형의 실전! Vulkan 중급

SPIR-V

windows에서 shaderc의 빌드 실패 문제 해결방법입니다

해결된 질문

작성

·

194

·

수정됨

2

윈도우에서는 shaderc를 빌드하려고 하면

unknown command: "create
make: *** [Android.mk:77: obj/local/arm64-v8a/libshaderc_combined.a] Error 1

라면서 오류가 발생합니다.

 

이를 해결하기 위해서는 Android.mk에서 45~51번째 줄을 아래 링크에서 제공하는 코드로 수정이 필요합니다.

[Bug]: llvm-ar.exe error "unknown command" · Issue #1815 · android/ndk (github.com)

 

또한, CMakeLists에서도 빌드 명령에서 APP_STL:=<stl_version>에 무엇을 넣느냐에 따라서 libshaderc.a의 경로가 달라지기 때문에 수정이 필요할 수 있습니다.

저는 뭘 넣어야 할지 몰라서 c++_shared를 사용했는데, 그러면, c++_shared라는 이름으로 폴더 이름이 만들어져 libshaderc.a를 링크하는 부분을 system에서 c++_shared로 변경해야합니다.

 

답변 3

1

삼각형님의 프로필 이미지
삼각형
지식공유자

윈도우즈에서 shaderc 빌드 에러와 해결법을 공유해주셔서 감사합니다. APP_STL의 경우 따로 명시하지 않으면 system으로 설정됩니다. 강의에서 제가 사용한 명령어는 아래와 같습니다.

$ ../../../ndk-build NDK_PROJECT_PATH=. APP_BUILD_SCRIPT=Android.mk \
APP_ABI=all libshaderc_combined

0

혹시 윈도우에서는 shaderc 경로가 어딘지 공유해주실 수 있으신가요?
C:\Program Files\Android\Android Studio1\plugins\android-ndk 여기는 아닌 것 같습니다..ㅋㅋ

삼각형님의 프로필 이미지
삼각형
지식공유자

윈도우 환경이 없어 확인해보지 못했지만 공식 문서에 따르면 설정된 ndk 폴더 아래에 있습니다. 아니면 https://github.com/google/shaderc 에서 다운받으셔서 빌드하셔도 됩니다.

C:/Users/[USERNAME]/AppData/Local/Android/Sdk/ndk/25.1.8937393

저는 이 경로에 설치되어있었습니다. 다른 수강생분들 참고하세요~

[x86] Compile++      : SPIRV-Tools-opt <= scalar_analysis.cpp
[x86] Compile++      : SPIRV-Tools-opt <= scalar_analysis_simplification.cpp
[x86] Compile++      : SPIRV-Tools-opt <= scalar_replacement_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= set_spec_constant_default_value_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= simplification_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= spread_volatile_semantics.cpp
[x86] Compile++      : SPIRV-Tools-opt <= ssa_rewrite_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= strength_reduction_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= strip_debug_info_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= strip_nonsemantic_info_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= struct_cfg_analysis.cpp
[x86] Compile++      : SPIRV-Tools-opt <= type_manager.cpp
[x86] Compile++      : SPIRV-Tools-opt <= types.cpp
[x86] Compile++      : SPIRV-Tools-opt <= unify_const_pass.cpp
[x86] Compile++      : SPIRV-Tools-opt <= upgrade_memory_model.cpp
[x86] Compile++      : SPIRV-Tools-opt <= value_number_table.cpp
[x86] Compile++      : SPIRV-Tools-opt <= vector_dce.cpp
[x86] Compile++      : SPIRV-Tools-opt <= workaround1209.cpp
[x86] Compile++      : SPIRV-Tools-opt <= wrap_opkill.cpp
[x86] StaticLibrary  : libSPIRV-Tools-opt.a
"[x86] Combine: libshaderc_combined.a <= libglslang.a libOGLCompiler.a libOSDependent.a libshaderc.a libshaderc_util.a libSPIRV.a libHLSL.a libSPIRV-Tools.a libSPIRV-Tools-opt.a"
md ".\libs\system\x86" >NUL 2>NUL || rem
copy /b/y ".\obj\local\x86\libshaderc_combined.a " ".\libs\system\x86\libshaderc.a" > NUL

윈도우즈 에서는 shaderc 빌드 완료하면 이런 로그가 나옵니다. 에러인줄 알았는데 정상적으로 빌드된 거네요;

0

안녕하세요 vulkan 공부를 하시는 것 같은데요 ~

워낙 하시는 분들이 잘 없기도 해서~

아래 주소로 들어오셔서 같이 공부하면 좋을 것 같아요~

https://open.kakao.com/o/g5MrTNog

133c96d님의 프로필 이미지
133c96d

작성한 질문수

질문하기