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++ 来解决此问题。
按照网上的说明在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++ 来解决此问题。