编译opencv3.4.10-GPU cuda10.0时glog库出现问题

问题: “/usr/lib/x86_64-linux-gnu/libglog.a(libglog_la-logging.o): relocation R_X86_64_PC32 against symbol `_ZN3fLI16FLAGS_logbufsecsE’ can not be used when making a shared object; recompile with -fPIC”

1.先尝试apt安装,其实这里的libglog.a和libglog.so应该就是apt安装的包里带的,不知道我的出了什么问题,libglog.so链接丢失,ls出来是红色的,然后apt重装不起作用

//安装
sudo apt-get install libgoogle-glog-dev
//卸载
sudo apt-get remove libgoogle-glog-dev

2.glog库编译安装方式解决

2.1先看下怎么安装,比较简单

https://blog.csdn.net/qq_22634949/article/details/101718879

注意如果要得到libglog.a,需要设置 -DBUILD_SHARED_LIBS=OFF,建议只安装共享库到系统,静态库只是make一下不要make install
2.2解决: 出现问题提示的原因是 recompile with -fPIC,即使用fpic重新编译glog库,手动编译glog共享库安装在/usr/local/lib/路径下,静态库可以只编译不安装,这里将编译好的glog静态库的libglog.a拷贝到/usr/lib/x86_64-linux-gnu/,即
sudo cp libglog.a /usr/lib/x86_64-linux-gnu/libglog.a

这里的libglog.a在编译时的build文件目录下

同时链接一下共享库,否则还会报错,先删除之前的共享库
sudo rm -rf /usr/lib/x86_64-linux-gnu/libglog.so 
sudo ln -s /usr/local/lib/libglog.so /usr/lib/x86_64-linux-gnu/libglog.so 
然后刷新一下
sudo ldconfig

然后再编译opencv就可以了

出现错误

[ 92%] Linking CXX executable ../../bin/opencv_test_sfm
../../lib/libopencv_sfm.so.3.4.10:对‘google::InitVLOG3__(int**, int*, char const*, int)’未定义的引用
../../lib/libopencv_sfm.so.3.4.10:对‘google::kLogSiteUninitialized’未定义的引用

关闭BUILD中的TEST项,即-DBUILD_TESTS=OFF可通过。

写的很乱,见谅!!


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部