Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Vulkan #18

Open
kevinzezel opened this issue Jan 27, 2023 · 0 comments
Open

Vulkan #18

kevinzezel opened this issue Jan 27, 2023 · 0 comments

Comments

@kevinzezel
Copy link

Hi,

I installed ncnn with vulkan on the raspberry pi 4B 8Gb correctly and I'm running the ncnn examples successfully on vulkan. But I'm not knowing how to correctly configure my CMakeLists.txt file to reference the glslang library.

Error:

/usr/bin/ld: /usr/local/lib/ncnn/libncnn.a(gpu.cpp.o): in function `ncnn::destroy_gpu_instance()':
gpu.cpp:(.text+0xcb4): undefined reference to `glslang::FinalizeProcess()'
/usr/bin/ld: /usr/local/lib/ncnn/libncnn.a(gpu.cpp.o): in function `ncnn::create_gpu_instance()':
gpu.cpp:(.text+0x3dc8): undefined reference to `glslang::InitializeProcess()'
/usr/bin/ld: /usr/local/lib/ncnn/libncnn.a(gpu.cpp.o): in function `ncnn::compile_spirv_module(char const*, int, ncnn::Option const&, std::vector<unsigned int, std::allocator<unsigned int> >&)':
gpu.cpp:(.text+0x7ba0): undefined reference to `glslang::TShader::TShader(EShLanguage)'
/usr/bin/ld: gpu.cpp:(.text+0x7bb8): undefined reference to `glslang::TShader::setStringsWithLengths(char const* const*, int const*, int)'
/usr/bin/ld: gpu.cpp:(.text+0x7bcc): undefined reference to `glslang::TShader::addProcesses(std::vector<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > > > const&)'
/usr/bin/ld: gpu.cpp:(.text+0x7bdc): undefined reference to `glslang::TShader::setEntryPoint(char const*)'
/usr/bin/ld: gpu.cpp:(.text+0x7be8): undefined reference to `glslang::TShader::setSourceEntryPoint(char const*)'
/usr/bin/ld: gpu.cpp:(.text+0x7d3c): undefined reference to `glslang::TShader::parse(TBuiltInResource const*, int, EProfile, bool, bool, EShMessages, glslang::TShader::Includer&)'
/usr/bin/ld: gpu.cpp:(.text+0x7d84): undefined reference to `glslang::TShader::getInfoLog()'
/usr/bin/ld: gpu.cpp:(.text+0x7dac): undefined reference to `glslang::TShader::getInfoDebugLog()'
/usr/bin/ld: gpu.cpp:(.text+0x7dd0): undefined reference to `glslang::TShader::~TShader()'
/usr/bin/ld: gpu.cpp:(.text+0x84b0): undefined reference to `glslang::GlslangToSpv(glslang::TIntermediate const&, std::vector<unsigned int, std::allocator<unsigned int> >&, glslang::SpvOptions*)'
/usr/bin/ld: gpu.cpp:(.text+0x84bc): undefined reference to `glslang::TShader::~TShader()'
/usr/bin/ld: gpu.cpp:(.text+0xa474): undefined reference to `glslang::TShader::~TShader()'
collect2: error: ld returned 1 exit status
make[2]: *** [CMakeFiles/test.dir/build.make:285: ../test] Error 1
make[1]: *** [CMakeFiles/Makefile2:95: CMakeFiles/test.dir/all] Error 2

CMakeLists.txt:

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)

project(test)

macro(use_cxx11)
  if (CMAKE_VERSION VERSION_LESS "3.1")
    if (CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
      set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17")
    endif ()
  else ()
    set (CMAKE_CXX_STANDARD 17)
  endif ()
endmacro(use_cxx11)

find_package(OpenCV REQUIRED)
find_package(aws-crt-cpp REQUIRED)
find_package(AWSSDK REQUIRED COMPONENTS s3 transfer)

set(SOURCES src/main.cpp src/TDetection.cpp)
set(
  EXTRA_LIBS ${OpenCV_LIBS} 
  /usr/local/lib/ncnn/libncnn.a
  /usr/lib/aarch64-linux-gnu/libvulkan.so  
)
set(EXECUTABLE_OUTPUT_PATH "../")

include_directories(include ${OpenCV_INCLUDE_DIRS} /usr/local/include/ncnn )
add_link_options(-fopenmp -s -ldl -lpthread )

add_executable(test ${SOURCES})

target_link_libraries(test ${EXTRA_LIBS})
target_link_libraries(test AWS::aws-crt-cpp)
target_link_libraries(test ${AWSSDK_LINK_LIBRARIES})

find_library(WIRINGPI_LIBRARIES NAMES wiringPi)
target_link_libraries(test ${WIRINGPI_LIBRARIES})

Obs: Everything runs perfect with Ncnn without Vulkan

Regards,
Kevin

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant