Centos安装OpenCV 2.4.11报错

Error when Installing OpenCV 2.4.11 in Centos

按照网上的说明在Centos中安装了OpenCV 2.4.11。但是我在make && make install.

这一步出错了

这里是:

Linking CXX shared library ../../lib/libopencv_core.so
/usr/bin/ld: /usr/lib/gcc/x86_64-redhat-linux/4.4.7/libstdc++.a(ctype.o): relocation R_X86_64_32S against `vtable for std::ctype<wchar_t>' can not be used when making a shared object; recompile with -fPIC
/usr/lib/gcc/x86_64-redhat-linux/4.4.7/libstdc++.a: could not read symbols: Bad value
collect2: ld returned 1 exit status
make[2]: *** [lib/libopencv_core.so.2.4.11] Error 1
make[1]: *** [modules/core/CMakeFiles/opencv_core.dir/all] Error 2
make: *** [all] Error 2

有谁知道我的 libstdc++.a 出了什么问题?

根据错误消息,我认为问题在于您的静态 libstdc++ 是在没有 -fPIC 选项的情况下编译的,因此 ld 不想使用它创建共享对象。

-fPIC 选项生成与位置无关的代码,该代码具有额外的信息,可以将其映射到不同的内存地址而无需更改(这就是为什么当您尝试使用非共享对象的代码创建共享对象时 ld 会抱怨的原因)与位置无关)。

您可以通过获取(或构建)使用 -fPIC 构建的 libstdc++ 来解决此问题。