ncnn填坑记录一:安装protobuf、cmake和opencv
下一篇:ncnn填坑记录二:安装ncnn
一.protobuf安装
1.下载
git clone https://gitee.com/arcy/protobuf.git # 网络不好才在码云下载,建议github
或
git clone https://github.com/protocolbuffers/protobuf.git
2.安装
安装依赖项:
sudo apt-get install autoconf automake libtool curl make g++ unzip libffi-dev -y
安装
cd protobuf/
./autogen.sh
./configure
make
sudo make install
sudo ldconfig // 刷新共享库,很重要的一步
3.报错
刷新共享库时,报错
/sbin/ldconfig.real: /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7 不是符号连接libcudnn.so.7 -> libcudnn.so.7.6.5
终端输入:
sudo ln -sf /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7.6.5 /usr/local/cuda-10.1/targets/x86_64-linux/lib/libcudnn.so.7
再次刷新共享库sudo ldconfig
,无报错。
测试protobuf是否安装成功protoc –h
,正常显示无报错。
4.卸载protoc
sudo rm -rf /usr/local/bin/protoc
二.Cmake安装
1.下载
在https://cmake.org/files/选择cmake大版本(比如v3.10),进去后选择具体版本(比如cmake-3.10.2-Linux-x86_64.tar.gz)下载
解压至指定文件夹
2.安装
./configure
make -j8
sudo make install
3.报错
./configure
报错:
CMake Error at /home/lgy/anaconda3/lib/cmake/Qt5Gui/Qt5GuiConfig.cmake:15 (message):The imported target "Qt5::Gui" references the file"/usr/lib/x86_64-linux-gnu/libEGL.so"but this file does not exist. Possible reasons include:
/usr/lib/x86_64-linux-gnu/libEGL.so* The file was deleted, renamed, or moved to another location.* An install or uninstall procedure did not complete successfully.* The installation package was faulty and contained"/home/lgy/anaconda3/lib/cmake/Qt5Gui/Qt5GuiConfigExtras.cmake"but not all the files it references.
解决方法:
参考https://blog.csdn.net/fb_941219/article/details/83549720
发现/usr/lib/x86_64-linux-gnu下的libEGL.so链接已断,删除后重新链接一个存在的目标
(base) lgy@lgy:/usr/lib/x86_64-linux-gnu$ ls /usr/lib/x86_64-linux-gnu | grep -i libegl
libEGL_nvidia.so.0
libEGL_nvidia.so.440.36
libEGL.so
libEGL.so.1
libEGL.so.1.1.0
(base) lgy@lgy:/usr/lib/x86_64-linux-gnu$ sudo rm -rf libEGL.so
[sudo] lgy 的密码:
(base) lgy@lgy:/usr/lib/x86_64-linux-gnu$ sudo ln libEGL.so.1 libEGL.so
重复第一步,还报错
- Checking support for ARCHIVE_CRYPTO_MD5_LIBMD
-- Checking support for ARCHIVE_CRYPTO_MD5_LIBMD -- not found
-- Checking support for ARCHIVE_CRYPTO_RMD160_LIBMD
-- Checking support for ARCHIVE_CRYPTO_RMD160_LIBMD -- not found
-- Checking support for ARCHIVE_CRYPTO_SHA1_LIBMD
-- Checking support for ARCHIVE_CRYPTO_SHA1_LIBMD -- not found
-- Checking support for ARCHIVE_CRYPTO_SHA256_LIBMD
-- Checking support for ARCHIVE_CRYPTO_SHA256_LIBMD -- not found
-- Checking support for ARCHIVE_CRYPTO_SHA512_LIBMD
-- Checking support for ARCHIVE_CRYPTO_SHA512_LIBMD -- not found
Curses libraries were not found. Curses GUI for CMake will not be built.
-- Configuring done
-- Generating done
-- Build files have been written to: /home/lgy/tools/cmake-3.10.2
不过不用在意,正常安装即可
(base) lgy@lgy:~/tools/cmake-3.10.2$ cmake --version
cmake version 3.10.2CMake suite maintained and supported by Kitware (kitware.com/cmake).
4.查看版本号
(base) lgy@lgy:~/tools/cmake-3.10.2$ cmake --version
cmake version 3.10.2
5.cmake默认安装在
(base) lgy@lgy:~/tools/cmake-3.10.2$ which cmake
/usr/local/bin/cmake
若遇到安装cmake后,查看版本号时显示的版本为linux自带的低版本,可直接将安装包里的cmake覆盖到/usr/local/bin/cmake。
三.OpenCV安装
方法一:apt-get安装
简单直接,不需配置环境,缺点时安装的版本太低了
sudo apt-get install libopencv-dev python-opencv
查看版本
pkg-config --modversion opencv
2.4.9.1
方法二:用cmake构建安装
1.github上下载opencv和opencv_contrib,我下载的3.4版本的,为了方便将opencv_contrib移至opencv文件夹下,2.x版本不需要安装opencv_contrib。
2.安装依赖项
sudo apt install build-essentialsudo apt install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev sudo apt install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev
3.编译安装,cmake时需指定opencv_contrib地址
cd opencv/
mkdir build
cd build/
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D OPENCV_EXTRA_MODULES_PATH=/home/lgy/tools/opencv/opencv_contrib/modules ..
sudo make install -j8
# 查看opencv版本
pkg-config --modversion opencv
4.易报错的地方
①.安装依赖项时报错:使用sudo apt-get install 时出现提示无法修正错误,因为您要求某些软件包保持现状,就是它们破坏了软件包间的依赖关系。
使用命令sudo aptitude install安装,选择 N Y Y .
②.ippicv和xfeatures2d报无法下载这种错,类似于
IPPICV:Download:ippicv_2019_lnx_intel64_general_20180723.tgz can‘t
connect to server
-- xfeatures2d/boostdesc: Download: boostdesc_bgm.i
-- Try 1 failed
还有缺少xx文件、无法找到xx文件这种错,建议直接开个vpn再安装,不然一个一个文件去找,费时不说,关键是国内网友提供的文件,有些版本不匹配或者哈希值不匹配,经常时解决了一个错误,又报另一个错误。
③.
类似于
/usr/bin/ld: warning: libpcre.so.1, needed by //home/lgy/anaconda3/lib/libglib-2.0.so.0, not found (try using -rpath or -rpath-link)
/usr/bin/ld: warning: libzstd.so.1.3.7, needed by //home/lgy/anaconda3/lib/libtiff.so.5, not found (try using -rpath or -rpath-link)
//home/lgy/anaconda3/lib/libtiff.so.5:对‘ZSTD_initCStream’未定义的引用
//home/lgy/anaconda3/lib/libtiff.so.5:对‘ZSTD_freeCStream’未定义的引用或
/usr/bin/ld: warning: libpcre.so.1, needed by //home/lgy/anaconda3/lib/libgstreamer-1.0.so.0, not found (try using -rpath or -rpath-link)
//home/lgy/anaconda3/lib/libglib-2.0.so.0:对‘pcre_exec’未定义的引用
//home/lgy/anaconda3/lib/libglib-2.0.so.0:对‘pcre_study’未定义的引用
方法
cd /usr/lib/x86_64-linux-gnu
sudo ln -s ~/anaconda3/lib/libzstd.so.1
sudo ldconfigsudo ln -s ~/anaconda3/lib/libffi.so.7
sudo ldconfigsudo ln -s ~/anaconda3/lib/libpcre.so.1
sudo ldconfig
④.类似于
/usr/bin/ld: warning: libpng16.so.16, needed by //home/lgy/anaconda3/lib/libcairo.so.2, not found (try using -rpath or -rpath-link)
//home/lgy/anaconda3/lib/libcairo.so.2:对‘png_set_interlace_handling@PNG16_0’未定义的引用
//home/lgy/anaconda3/lib/libcairo.so.2:对‘png_set_IHDR@PNG16_0’未定义的引用
//home/lgy/anaconda3/lib/libcairo.so.2:对‘png_get_io_ptr@PNG16_0’未定义的引用
方法
1.cd /usr/lib/x86_64-linux-gnu
2.sudo ln -s ~/anaconda3/lib/libpng16.so.16 libpng16.so.16
3.sudo ldconfig
5.设置环境变量,参考链接
sudo gedit /etc/ld.so.conf.d/opencv.conf
/usr/local/lib
sudo ldconfigsudo gedit /etc/bash.bashrc
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
source /etc/bash.bashrc
6.测试 opencv
进入opencv/samples/cpp/example_cmake目录下,终端打开,依次输入:
cmake .
make
./opencv_example
最后会弹出一个显示“Hello OpenCV”的窗口,总算安装好opencv了。
ncnn填坑记录一:安装protobuf、cmake和opencv相关推荐
- ncnn填坑记录八:将自己训练的模型打包为APK并部署到安卓端运行
上一篇:ncnn填坑记录七:examples/squeezenet.cpp代码阅读 做一个分类任务,模型选取的mobilenetv3,训练好模型,并按前文依次转换为onnx.ncnn后,参考官方htt ...
- ncnn填坑记录五:在安卓端运行ncnn
上一篇:ncnn填坑记录四:pytorch模型转ncnn 下一篇:ncnn填坑记录六:Android Studio打包APK 一.安装Android Studio 下载地址:https://devel ...
- Mac Xcode opencv C++环境配置 保姆级教程 填坑记录 19年最新版本
网上找了很多教程,照着做都失败了,整整弄了两天两夜,终于好了.网上根本没有人遇到我的坑么?都搜不到,国外也没搜到,呜呜- 版本说明: 1.(必备)MacBook系统:macOS Catalina(版本 ...
- Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)
1.背景 上一篇帖子介绍了思路调整的过程,我的目标从"消灭止损单"(越来越保守)改为"追大肉"(允许有止损单,盈利超过损失就行). Python美股量化交易填坑 ...
- Python美股量化交易填坑记录——13b.Vegas隧道交易机器人(实盘记录)
1.背景 上一篇帖子介绍了该算法的原理和八天的实盘记录: Python美股量化交易填坑记录--13a.Vegas隧道交易机器人_ChristopherShen的博客-CSDN博客 经过八天实盘后,已经 ...
- ubuntu16.04安装Intel 9260AC无线网卡填坑记录
由于本科毕设环境需要,本人在笔记本上安装了win10+ubuntu16.04双系统,但是由于之前给笔记本换过无线网卡,型号是intel 9260AC,当时还是比较新的,但是发现在Ubuntu系统里面无 ...
- 在ThinkPad X280加装M.2硬盘上安装 Ubuntu 18.04.3 填坑记录
填坑背景 用了一段时间的X280后,突然想在M.2接口上加装一个 NVMe 2242 的SSD,发现 Lenovo 的BIOS设置的非常奇特.能够检测到这个硬盘,但是启动项里就是不能识别!或许是直接就 ...
- 众里寻TiDB千百度,蓦然回首,这些填坑记录还在灯火阑珊处
前言 俗话说得好,架构重构一时爽,一直重构一直爽,又到了架构重构的时节:俗话又说了,饱暖思X欲,在产品技术架构稳定运行了好久之后,又迎来了躁动的撩拨,重构之心蠢蠢欲动:俗话最后说了,技术有风险,重构需 ...
- 深度学习框架(Pytorch)+ 机器人(ROS):ROS melodic 上安装 Turtlebot2 —> 安装 hokuyo 激光雷达 —> Python 3 的虚拟环境中调用 ROS 填坑记录
复现论文需要ubuntu+ros+turtlebot2+hokuyo的配置,这里有一个关于turtlebot的教程: Learn TurtleBot and ROS 关于 turtlebot 的各种软 ...
最新文章
- 时钟源为什么会影响性能
- Linux应用服务导致系统负载过高问题排查
- mysql触发器 当记录的指定字段发生变化时,更新表中的另外一个字段,或者更新另外一张关联表中关联记录的字段...
- 掌控谈话~重复对方的话
- java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园
- Java应用一般架构
- OCP 笔记,非常感谢那位告诉的博客。谢谢。
- 背板,线速,交换容量详细解说
- NLP论文 -《Distributed Representations of Sentences and Documents》-句子和文档的分布式表示学习(二)
- python列表中删除子列表_从列表列表中删除列表元素
- 记录windows下docker常见错误与解决办法
- “Git 不是昙花一现!”
- 学习Mysql (一)
- 在GitHub存储库中创建标记
- java jdk 环境不一致_jdk(多版本)安装注意!
- Sigmoid函数求导
- 饭后Android 第三餐-XUI框架(XUI介绍,使用方法,控件使用(九个Button,导航栏,可伸缩布局,顶部弹出框))
- 路由器当交换机用的设置方法
- 渗透测试工具-sqlmap
- 前端白屏问题_前端性能优化之白屏时间