下一篇: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相关推荐

  1. ncnn填坑记录八:将自己训练的模型打包为APK并部署到安卓端运行

    上一篇:ncnn填坑记录七:examples/squeezenet.cpp代码阅读 做一个分类任务,模型选取的mobilenetv3,训练好模型,并按前文依次转换为onnx.ncnn后,参考官方htt ...

  2. ncnn填坑记录五:在安卓端运行ncnn

    上一篇:ncnn填坑记录四:pytorch模型转ncnn 下一篇:ncnn填坑记录六:Android Studio打包APK 一.安装Android Studio 下载地址:https://devel ...

  3. Mac Xcode opencv C++环境配置 保姆级教程 填坑记录 19年最新版本

    网上找了很多教程,照着做都失败了,整整弄了两天两夜,终于好了.网上根本没有人遇到我的坑么?都搜不到,国外也没搜到,呜呜- 版本说明: 1.(必备)MacBook系统:macOS Catalina(版本 ...

  4. Python美股量化交易填坑记录——13c.Vegas隧道交易机器人(实盘记录)

    1.背景 上一篇帖子介绍了思路调整的过程,我的目标从"消灭止损单"(越来越保守)改为"追大肉"(允许有止损单,盈利超过损失就行). Python美股量化交易填坑 ...

  5. Python美股量化交易填坑记录——13b.Vegas隧道交易机器人(实盘记录)

    1.背景 上一篇帖子介绍了该算法的原理和八天的实盘记录: Python美股量化交易填坑记录--13a.Vegas隧道交易机器人_ChristopherShen的博客-CSDN博客 经过八天实盘后,已经 ...

  6. ubuntu16.04安装Intel 9260AC无线网卡填坑记录

    由于本科毕设环境需要,本人在笔记本上安装了win10+ubuntu16.04双系统,但是由于之前给笔记本换过无线网卡,型号是intel 9260AC,当时还是比较新的,但是发现在Ubuntu系统里面无 ...

  7. 在ThinkPad X280加装M.2硬盘上安装 Ubuntu 18.04.3 填坑记录

    填坑背景 用了一段时间的X280后,突然想在M.2接口上加装一个 NVMe 2242 的SSD,发现 Lenovo 的BIOS设置的非常奇特.能够检测到这个硬盘,但是启动项里就是不能识别!或许是直接就 ...

  8. 众里寻TiDB千百度,蓦然回首,这些填坑记录还在灯火阑珊处

    前言 俗话说得好,架构重构一时爽,一直重构一直爽,又到了架构重构的时节:俗话又说了,饱暖思X欲,在产品技术架构稳定运行了好久之后,又迎来了躁动的撩拨,重构之心蠢蠢欲动:俗话最后说了,技术有风险,重构需 ...

  9. 深度学习框架(Pytorch)+ 机器人(ROS):ROS melodic 上安装 Turtlebot2 —> 安装 hokuyo 激光雷达 —> Python 3 的虚拟环境中调用 ROS 填坑记录

    复现论文需要ubuntu+ros+turtlebot2+hokuyo的配置,这里有一个关于turtlebot的教程: Learn TurtleBot and ROS 关于 turtlebot 的各种软 ...

最新文章

  1. 时钟源为什么会影响性能
  2. Linux应用服务导致系统负载过高问题排查
  3. mysql触发器 当记录的指定字段发生变化时,更新表中的另外一个字段,或者更新另外一张关联表中关联记录的字段...
  4. 掌控谈话~重复对方的话
  5. java rmi接口 超时设置_Spring RMI客户端读超时设置 | 学步园
  6. Java应用一般架构
  7. OCP 笔记,非常感谢那位告诉的博客。谢谢。
  8. 背板,线速,交换容量详细解说
  9. NLP论文 -《Distributed Representations of Sentences and Documents》-句子和文档的分布式表示学习(二)
  10. python列表中删除子列表_从列表列表中删除列表元素
  11. 记录windows下docker常见错误与解决办法
  12. “Git 不是昙花一现!”
  13. 学习Mysql (一)
  14. 在GitHub存储库中创建标记
  15. java jdk 环境不一致_jdk(多版本)安装注意!
  16. Sigmoid函数求导
  17. 饭后Android 第三餐-XUI框架(XUI介绍,使用方法,控件使用(九个Button,导航栏,可伸缩布局,顶部弹出框))
  18. 路由器当交换机用的设置方法
  19. 渗透测试工具-sqlmap
  20. 前端白屏问题_前端性能优化之白屏时间

热门文章

  1. OICQ 99c版本加密方法研究报告 1
  2. NoSQL 之 Redis 配置与优化
  3. 2020年9月北京BGP机房网络质量评测:天地祥云木樨园力压群芳终进前三
  4. 难以置信的贝壳房子 (转)
  5. 概率分布 ---- 指数分布
  6. SGP30传感器示例程序(基于51单片机、IO模拟I2C)
  7. 马尔可夫链文本生成c语言,马尔可夫链文本生成
  8. Caffe2 入门教程
  9. 新型机器人闯入职场:到底是工作缔造者还是工作终结者?--华盛顿邮报
  10. laravel修改数据库配置文件