所以我不是在计算机上工作,而是在运行Ubuntu的嵌入式设备上。Linux编译 - 冲突的库
我想编译openCV代码,但我感觉我处于僵局之中!
这是我的错误: 问题:
/usr/bin/ld: warning: libopencv_core.so.3.2, needed by //usr/local/lib/libopencv_imgcodecs.so, may conflict with libopencv_core.so.2.4
/usr/bin/ld: /tmp/ccYlsBYW.o: undefined reference to symbol '_ZN2cv11setIdentityERKNS_17_InputOutputArrayERKNS_7Scalar_IdEE'
/usr/local/lib//libopencv_core.so.3.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
重命名2.4库:
[email protected]:/usr/lib$ sudo mv libopencv_core.so libopencv_core.soMyOld
[email protected]:/usr/lib$ sudo mv libopencv_core.so.2.4 libopencv_core.so.2.4MyOld
[email protected]:/usr/lib$ sudo mv libopencv_core.so.2.4.10 libopencv_core.so.2.4.10MyOld
重新编译代码
/usr/bin/ld: warning: libopencv_core.so.2.4, needed by /usr/lib/gcc/arm-linux-gnueabihf/4.8/../../../../lib/libopencv_imgproc.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libopencv_imgproc.so.3.2, needed by //usr/local/lib/libopencv_imgcodecs.so, may conflict with libopencv_imgproc.so.2.4
/usr/bin/ld: /tmp/ccmcvWug.o: undefined reference to symbol '_ZN2cv6circleERKNS_17_InputOutputArrayENS_6Point_IiEEiRKNS_7Scalar_IdEEiii'
/usr/local/lib//libopencv_imgproc.so.3.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
重命名3.2库:
[email protected]:/usr/local/lib$ sudo mv libopencv_core.so
[email protected]:/usr/local/lib$ sudo mv libopencv_core.so.3.2 libopencv_core.so.3.2MyOld
[email protected]:/usr/local/lib$ sudo mv libopencv_core.so.3.2.0 libopencv_core.so.3.2.0MyOld
重新编译
/usr/bin/ld: warning: libopencv_core.so.3.2, needed by //usr/local/lib/libopencv_imgcodecs.so, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libopencv_imgproc.so.3.2, needed by //usr/local/lib/libopencv_imgcodecs.so, may conflict with libopencv_imgproc.so.2.4
/usr/bin/ld: /tmp/cclHSHtB.o: undefined reference to symbol '_ZN2cv6circleERKNS_17_InputOutputArrayENS_6Point_IiEEiRKNS_7Scalar_IdEEiii'
/usr/local/lib//libopencv_imgproc.so.3.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
我能做些什么来解决这个问题?一切卸载并重新安装是不是一种选择...
编辑:
我用这个命令编译:
g++ src/personDetection.cpp src/personRecognition.cpp main.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_imgcodecs -lopencv_calib3d -lopencv_features2d -lopencv_video -lopencv_videoio -pthread -o main
我想你是在一个tegra板上。也许你应该删除默认安装的OpenCV库:'OpenCV4Tegra'。 – nglee
@devnglee“也许”?你为什么不确定?顺便说一句,错误不是关于opencv版本4,就像你指的那样,在我的主板上没有安装openCV的默认设置。 – LandonZeKepitelOfGreytBritn
'opencv4tegra'代表tegra的opencv。忘记,如果你的董事会没有。所以你已经安装了2.4并试图安装3.2? – nglee