Linux无root无sudo权限安装opencv3.4.1
作者:
F1NEEN | 来源:发表于
2019-07-15 02:04 被阅读0次
- 因为导师分配的平台账号只有普通用户权限,所以只能自己下载安装一些软件,以opencv为例。
- 首先linux系统已经安装好cmake-3.14.5
下载opencv3.4.1压缩包和opencv_contrib3.4.1
执行命令:
- tar -xzvf *.tar.gz
- cd opencvXXXX
- mkdir build && cd build
- cmake -D CMAKE_BUILD_TYPE=RELEASE -D WITH_TBB=ON -D WITH_V4L=ON -D BUILD_TIFF=ON -D BUILD_EXAMPLES=ON -D BUILD_DOCS=OFF -D BUILD_PERF_TESTS=OFF -D BUILD_TESTS=OFF -D WITH_OPENGL=ON -D WITH_EIGEN=ON -D WITH_CUDA=ON -D WITH_CUBLAS=ON -D CUDA_NVCC_FLAGS="-std=c++11 --expt-relaxed-constexpr" -D WITH_NVCUVID=ON -D BUILD_opencv_cudacodec=OFF -D OPENCV_EXTRA_MODULES_PATH=/home/xxx/xxx/opencv-3.4.1/opencv_contrib/modules -D CMAKE_INSTALL_PREFIX=/usr/local/ ..(视个人情况)
遇到问题:
- 一开始没有加上 -D WITH_NVCUVID=ON -D BUILD_opencv_cudacodec=OFF(error:Cuda 10.0 fatal error: dynlink_nvcuvid.h: No such file or directory)
原因:
- cuda10以上没有dynlink_nvcuvid.h和nvcuvid.h,所以要将BUILD_opencv_cudacodec=OFF
执行命令:
- make -j4
- 既然IO不是瓶颈,那CPU就应该是一个影响编译速度的重要因素。
- 用make -j带一个参数(2,4,8,16...),可以把项目在进行并行编译,比如在一台双核的机器上,完全可以用make -j4,让make最多允许4个编译命令同时执行,这样可以更有效的利用CPU资源。
- 在多核CPU上,适当的进行并行编译还是可以明显提高编译速度的。但并行的任务不宜太多,一般是以CPU的核心数目的两倍为宜。
- 但如果项目的Makefile不规范,没有正确的设置好依赖关系,并行编译的结果就是编译不能正常进行。如果依赖关系设置过于保守,则可能本身编译的可并行度就下降了,也不能取得最佳的效果。
- 可以去了解一下超线程技术。
执行命令:
添加环境变量:
- vim ~/.bashrc
- 将下面内容添加到文件后面:
- PKG_CONFIG_PATH="$PKG_CONFIG_PATH:/home/xxx/xxx" export
- PKG_CONFIG_PATH export LD_LIBRARY_PATH="$LD_LIBRARY_PATH:/home/xxx/xxx/"
遇到问题:
- Package opencv was not found in the pkg-config search path.Perhaps you should add the directory containing `opencv.pc' to the PKG_CONFIG_PATH environment variable.No package 'opencv' found
解决:
- 找到opencv.pc所在路径
- source ~/.bashrc
最后测试:
- pkg-config --modversion opencv
- 显示opencv版本号则成功
本文标题:Linux无root无sudo权限安装opencv3.4.1
本文链接:https://www.haomeiwen.com/subject/qyowkctx.html
网友评论