编译opencv 3上ubuntu 16.04链接错误:/usr/lib/x86_64-linux-gnu/libsoxr.so.0:未定义的引用`GOMP_parallel@GOMP_4.0' [英] compile opencv 3 on ubuntu 16.04 linking error: /usr/lib/x86_64-linux-gnu/libsoxr.so.0: undefined reference to `GOMP_parallel@GOMP_4.0'

查看:11838
本文介绍了编译opencv 3上ubuntu 16.04链接错误:/usr/lib/x86_64-linux-gnu/libsoxr.so.0:未定义的引用`GOMP_parallel@GOMP_4.0'的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试通过从源代码安装在Ubuntu 16.04上安装openCV 3.1,CUDA 8.0.44。

Trying to install openCV 3.1, CUDA 8.0.44 on Ubuntu 16.04 by building from the source.

以下是编译期间遇到的错误。 p>

The following are the errors I met during the compilation.

Scanning dependencies of target opencv_test_video
[ 37%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_optflowpyrlk.cpp.o
[ 37%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_accum.cpp.o
[ 37%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_kalman.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_ecc.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_tvl1optflow.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_main.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_camshift.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/ocl/test_optflowpyrlk.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/ocl/test_optflow_farneback.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/ocl/test_bgfg_mog2.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/ocl/test_optflow_tvl1flow.cpp.o
[ 38%] Building CXX object modules/video/CMakeFiles/opencv_test_video.dir/test/test_estimaterigid.cpp.o
[ 38%] Linking CXX executable ../../bin/opencv_test_video
//usr/lib/x86_64-linux-gnu/libsoxr.so.0: undefined reference to `GOMP_parallel@GOMP_4.0'
collect2: error: ld returned 1 exit status
modules/video/CMakeFiles/opencv_test_video.dir/build.make:391: recipe for target 'bin/opencv_test_video' failed
make[2]: *** [bin/opencv_test_video] Error 1
CMakeFiles/Makefile2:3336: recipe for target 'modules/video/CMakeFiles/opencv_test_video.dir/all' failed
make[1]: *** [modules/video/CMakeFiles/opencv_test_video.dir/all] Error 2
Makefile:160: recipe for target 'all' failed
make: *** [all] Error 2

与openMP或ld配置相关。

I consider the issue is related to the openMP or the ld configuration.

以下是详细配置:


  1. LD_LIBRARY_PATH:

/ usr / lib / nvidia-current:/ usr / local / cuda / lib64:/ usr / local / cuda / lib


  1. GCC版本:5.4.0

  1. GCC version: 5.4.0

CMake配置命令:

CMake configuration command:

cmake -D CMAKE_BUILD_TYPE = RELEASE -D CMAKE_INSTALL_PREFIX = / usr / local -D WITH_TBB = ON -D WITH_V4L = ON -D WITH_QT = ON -D WITH_OPENGL = ON -D WITH_CUBLAS = ON -DCUDA_NVCC_FLAGS = - D_FORCE_INLINES..

推荐答案

首先,我认为这个问题是由于我安装Anaconda并把它放进我的 PATH

Firstly, I thought this problem was caused because I installed Anaconda and put it into my PATH.

Anaconda和系统默认值之间使用不同的GCC版本。对于Ubuntu 16.04,GCC版本是5.4.0,但Anaconda只提供GCC 4(我不记得它是4.4或4.8)。虽然我使用系统默认gcc来编译opencv,它会以某种方式找到位于Anaconda的lib,这导致了问题。

Different GCC version are used between Anaconda and System default. For Ubuntu 16.04, the GCC version is 5.4.0 however Anaconda only provides GCC 4 (I can't remember it's 4.4 or 4.8). Although I used the system default gcc to compile opencv, it somehow will find the lib located in Anaconda, which caused the problem.

我想有两种方法来解决这个问题。

I think there are two ways to solve this issue.


  1. 方法1:使用cmake-gui并检查 WITH-OPENMP c>

  2. 方法2:从 $ PATH 删除Anaconda

  1. Method 1: Use the cmake-gui and check the choice WITH-OPENMP.
  2. Method 2: Delete Anaconda from your $PATH and LD_LIBRARY_PATH.

这篇关于编译opencv 3上ubuntu 16.04链接错误:/usr/lib/x86_64-linux-gnu/libsoxr.so.0:未定义的引用`GOMP_parallel@GOMP_4.0'的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆