uVkCompute
uVkCompute copied to clipboard
Build Failing @ Ubuntu 18.4
ninja: error: 'uvkc/benchmark/Vulkan::glslc', needed by 'uvkc/benchmark/void_shader_spirv_instance.inc', missing and no known rule to make it
Any idea how to deal with this?
Regards Yao
Did you have a recent Vulkan SDK installed? glslc
should be shipped in recent Vulkan SDK. You can see uvkc_find_vulkan_toolchain.cmake
to understand how CMake tries to find Vulkan shader toolchain for uVkCompute.
Thanks. I upgrade to the latest Vulkan_SDK. Now we progressed to here.
FAILED: uvkc/vulkan/CMakeFiles/uvkc_vulkan_dynamic_symbols.dir/dynamic_symbols.cc.o /usr/bin/c++ -I/home/nobond/workspace/uVkCompute -I/home/nobond/workspace/uVkCompute/third_party/abseil-cpp -DVK_NO_PROTOTYPES -std=gnu++14 -MD -MT uvkc/vulkan/CMakeFiles/uvkc_vulkan_dynamic_symbols.dir/dynamic_symbols.cc.o -MF uvkc/vulkan/CMakeFiles/uvkc_vulkan_dynamic_symbols.dir/dynamic_symbols.cc.o.d -o uvkc/vulkan/CMakeFiles/uvkc_vulkan_dynamic_symbols.dir/dynamic_symbols.cc.o -c /home/nobond/workspace/uVkCompute/uvkc/vulkan/dynamic_symbols.cc /home/nobond/workspace/uVkCompute/uvkc/vulkan/dynamic_symbols.cc: In static member function ‘static absl::StatusOr<std::unique_ptruvkc::vulkan::DynamicSymbols > uvkc::vulkan::DynamicSymbols::CreateFromSystemLoader()’: /home/nobond/workspace/uVkCompute/uvkc/vulkan/dynamic_symbols.cc:176:10: error: could not convert ‘syms’ from ‘std::unique_ptruvkc::vulkan::DynamicSymbols’ to ‘absl::StatusOr<std::unique_ptruvkc::vulkan::DynamicSymbols >’ return syms; ^~~~
That seems to be a GCC issue. We don't have CI for GCC; right now only Clang is actively checked in CI. So it's not surprising that something might go wrong for GCC. I don't have a box with Ubuntu 18.04 at my side. I tried compiling with GCC 10 on Ubuntu 21.04, it's fine for me. For now you can switch to use Clang to bypass the issue if that's possible.
Any quick way to switch to Clang?
I got clang in my machine anyway already but the cmake did seem only use g++
All right. Managed to upgrade my ubuntu to gcc-10, which seems solved the compiler issue.
Does it meant only run at an ARM machine? I run build benchmark, everything is core-dumped
I got clang in my machine anyway already but the cmake did seem only use g++
You can use cmake -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) ...
to switch to clang.
Does it meant only run at an ARM machine? I run build benchmark, everything is core-dumped
That's strange. It should run on x86 Linux. What's the error message?
You can use
cmake -DCMAKE_C_COMPILER=$(which clang) -DCMAKE_CXX_COMPILER=$(which clang++) ...
to switch to clang.Thanks. It works as well regarding to compile.
That's strange. It should run on x86 Linux. What's the error message?
Please see the attached image. gcc/clang compiled results are the same.
Also I have a Nvidia-1060 actually, not sure whether it matters.