带有 OpenCV 的 LibTorch:找不到版本 GOMP_5.0
LibTorch with OpenCV: version GOMP_5.0 not found
我正在尝试在同一个项目中使用 OpenCV 和 LibTorch。 Libtorch安装在/usr/include/libtorch,从PyTorch官网下载。我正在为 CUDA 11.3 使用 cxx11 ABI
版本。
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.23 FATAL_ERROR)
project(chess-rl VERSION 1.0)
find_package( OpenCV REQUIRED )
set(CMAKE_PREFIX_PATH /usr/include/libtorch/share/cmake/)
find_package(Torch REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${OpenCV_LIBS})
include_directories(${TORCH_INCLUDE_DIRS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
file (GLOB SOURCE_FILES
${PROJECT_SOURCE_DIR}/src/*.cc
${PROJECT_SOURCE_DIR}/src/chess/*.cc
)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} "${TORCH_LIBRARIES}" )
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
该程序的顶部有 #include <opencv2/opencv.hpp>
行。
编译工作正常,但是 运行ning 可执行文件给我这个错误:
/usr/include/libtorch/lib/libgomp-52f2fd74.so.1: version `GOMP_5.0' not found (required by /usr/lib/libvtkCommonCore.so.1)
我认为 libtorch 正在尝试使用与 OpenCV 不兼容的库。
如果我 运行 带有 LD_PRELOAD=/usr/lib/libgomp.so ./build/my-program
的程序,它 运行 没问题。
如何在不使用该环境变量的情况下修复此错误?有没有办法 link CMake 中的特定库?
我遇到了同样的问题,您的帖子提供了一种解决方案。
您需要在 CMakelists.txt 文件中添加一个共享库。
add_library(libName SHARED IMPORTED)
set_property(TARGET libName PROPERTY IMPORTED_LOCATION "/usr/lib/libgomp.so")
target_link_libraries(PROJECT_NAME
libName)
希望能帮到你
亲切的问候
我正在尝试在同一个项目中使用 OpenCV 和 LibTorch。 Libtorch安装在/usr/include/libtorch,从PyTorch官网下载。我正在为 CUDA 11.3 使用 cxx11 ABI
版本。
这是我的 CMakeLists.txt 文件:
cmake_minimum_required(VERSION 3.23 FATAL_ERROR)
project(chess-rl VERSION 1.0)
find_package( OpenCV REQUIRED )
set(CMAKE_PREFIX_PATH /usr/include/libtorch/share/cmake/)
find_package(Torch REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
include_directories(${OpenCV_LIBS})
include_directories(${TORCH_INCLUDE_DIRS})
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TORCH_CXX_FLAGS}")
file (GLOB SOURCE_FILES
${PROJECT_SOURCE_DIR}/src/*.cc
${PROJECT_SOURCE_DIR}/src/chess/*.cc
)
add_executable(${PROJECT_NAME} ${SOURCE_FILES})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} "${TORCH_LIBRARIES}" )
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_STANDARD 20)
该程序的顶部有 #include <opencv2/opencv.hpp>
行。
编译工作正常,但是 运行ning 可执行文件给我这个错误:
/usr/include/libtorch/lib/libgomp-52f2fd74.so.1: version `GOMP_5.0' not found (required by /usr/lib/libvtkCommonCore.so.1)
我认为 libtorch 正在尝试使用与 OpenCV 不兼容的库。
如果我 运行 带有 LD_PRELOAD=/usr/lib/libgomp.so ./build/my-program
的程序,它 运行 没问题。
如何在不使用该环境变量的情况下修复此错误?有没有办法 link CMake 中的特定库?
我遇到了同样的问题,您的帖子提供了一种解决方案。 您需要在 CMakelists.txt 文件中添加一个共享库。
add_library(libName SHARED IMPORTED)
set_property(TARGET libName PROPERTY IMPORTED_LOCATION "/usr/lib/libgomp.so")
target_link_libraries(PROJECT_NAME
libName)
希望能帮到你 亲切的问候