【问题标题】:Error while building OpenCV: "recompile with -fPIC"构建 OpenCV 时出错:“使用 -fPIC 重新编译”
【发布时间】:2018-05-14 22:02:01
【问题描述】:

我正在借助本指南http://opencv-java-tutorials.readthedocs.io/en/latest/01-installing-opencv-for-java.html 在 Linux 上安装 OpenCV

在最后一步我收到以下错误。我尝试在 cmake-gui 中添加fPIC,但仍然没有解决问题。在 cmake-gui 中,我创建了一个新的名称-值条目:CXX_FLAG -fPIC——不完全确定这是否是正确的方法。

make -j

Linking CXX shared library ../../lib/libopencv_java331.so
/usr/bin/ld: CMakeFiles/opencv_java.dir/generator/src/cpp/listconverters.cpp.o: relocation R_X86_64_32 against `.bss' can not be used when making a shared object; recompile with -fPIC
CMakeFiles/opencv_java.dir/generator/src/cpp/listconverters.cpp.o: error adding symbols: Bad value
collect2: error: ld returned 1 exit status
make[2]: *** [lib/libopencv_java331.so] Error 1
make[1]: *** [modules/java/CMakeFiles/opencv_java.dir/all] Error 2
make: *** [all] Error 2

更新: cmake-gui 中的正确标志是 CMAKE_CXX_FLAGS。在configure, generate and make -j 之后错误仍然没有消失。

【问题讨论】:

    标签: c++ linux opencv makefile ant


    【解决方案1】:

    好的。这对我有用。

    $ export JAVA_HOME=/lib/jvm/java-1.8.0-openjdk-1.8.0.151-1.b12.el7_4.x86_64 //replace with your JDK path
    $ git clone https://github.com/opencv/opencv.git
    $ cd opencv
    $ mkdir build
    $ cd build
    $ cmake -D BUILD_SHARED_LIBS=OFF -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=. ..
    $ make -j
    
    BUILD SUCCESSFUL
    Total time: 10 seconds
    

    【讨论】:

      猜你喜欢
      • 2017-10-24
      • 2015-01-18
      • 2013-08-25
      • 1970-01-01
      • 2016-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多