安装OpenCV(可参考链接)

  • 下载source到 /usr/local/路径下
  • 新建 /build/
  • cmake 编译

添加库路径

  • vim /etc/ld.so.conf

    该目录作用参考链接
  • 输入:
include /etc/ld.so.conf.d/*.conf
/usr/local/lib
  • 运行sudo ldconfig(作用见上面链接)

添加系统环境变量

  • vim /etc/profile
  • 在末尾追加:
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  • 更新环境变量:source /etc/profile

添加用户环境变量

  • vim /etc/bash.bashrc
  • 在末尾追加:
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
  • 更新环境变量:source /etc/bash.bashrc

更新系统库缓存

  • ldconfig

查看是否安装成功

pkg-config --modversion opencv

编译并链接OpenCV

g++ example.cpp -o opencv_example `pkg-config --cflags --libs opencv`
./opencv_example

pkg-config --cflags --libs的作用见链接

附录1:/etc/profile 和 ~/.bashrc 的区别(参考链接1,链接2)

  • /etc/profile: 此文件为系统的每个用户设置环境信息
  • ~/.bashrc: 是用户相关的终端(shell)的环境设置

附录2: 环境变量内$和:的用法(参考链接)

  • 同一个环境变量名对应多个路径,可以用冒号:分隔
  • 之前定义过的环境变量名,想要重复使用,可以用$跟上PATH_NAME
  • 写法样例:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig  #在原来的PKG_CONFIG_PATH基础上新增一个路径/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH #导入新增后的路径

也可以直接合并为

export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig

linux下第三方库的配置和链接——以opencv为例的更多相关文章

  1. 两分钟搞定VS下第三方库的配置(以GNU Regex Library库为例)

    写C的朋友大概知道导入一个库的痛苦,特别是在宇宙第一IDE--VS下更是无从下手,生怕一不小心就把VS搞崩了,而VS的卸载过程又是一个十分头疼的过程.所以,这里特此开了一篇如何在VS下配置第三方库的博 ...

  2. 深入理解LINUX下动态库链接器/加载器ld-linux.so.2

    [ld-linux-x86-64.so.2] 最近在Linux 环境下开发,搞了好几天 Compiler 和 linker,觉得有必要来写一篇关于Linux环境下 ld.so的文章了,google上搜 ...

  3. 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH

    谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH  PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...

  4. Linux下动态库生成和使用

    Linux下动态库生成和使用 一.动态库的基本概念 1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态链接库是目标文件的集合,目标文件在动态链接库中 ...

  5. Linux下静态库生成和使用

    Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object  files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...

  6. 查看Linux下*.a库文件中文件、函数、变量

    查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...

  7. Linux下动态库的使用

    1.生成动态库: gcc -fPIC -shared -o libdemo.so demo.c 考虑程式库major的升级会破坏兼容性:而minior的升级则可能不会,一般建议用以下方式来生成动态库. ...

  8. Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so

    Linux下的库操作工具-nm.ar.ldd.ldconfig和ld.so .nm [options] file 列出file中的所有符号 [option] -c 将符号转化为用户级的名字 -s 当用 ...

  9. Linux下SVN服务器搭建配置

    Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...

  10. Linux下的Nginx的配置+Tomcat启动

    Linux下的Nginx的配置 首次如果你只仅主机模式,那么请你切换到桥接模式或者net模式. 1.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc ...

随机推荐

  1. dismount ASM磁盘组,影响未使用的其它ASM磁盘组

    # 问题概述登录数据库,查看活动会话,发现大量library cache lock ,log file switch (archiving needed),归档失败,redo log无法重用.# 问题 ...

  2. 使用树莓派PICO点灯

    使用树莓派PICO点灯树莓派PICO简介具体步骤方式①下载Thonny软件②为PICO烧录MicroPython固件①下载UF2文件②PICO进入boot模式烧录固件③进行点灯效果总结 具体步骤方式① ...

  3. pdf.js 跨域完美解决!

    在网上查看很多方法去解决此类跨域问题,及如何动态加载pdf文件.看来看去 请求的由后台处理加header头的  pdf.js 自带的 获取地址栏param参数值的 都是很麻烦的步骤并且有时不能有效解决 ...

  4. Django views.py 增,删,改

    from django import forms from django.shortcuts import render, redirect from app01 import models # Cr ...

  5. Ubuntu系统安装搜狗拼音输入法

    问题背景 Ubuntu是使用人数最多的Linux发行版之一,其丰富的生态广受各位种花家程序员小伙伴们的欢迎.对种花家小伙伴们来说,最重要的功能之一就是中文输入法了.但是Ubuntu自带的中文输入法效果 ...

  6. 如何使用visual studio code的插件remote ssh远程操作virtual box虚拟机

    0 Remote-SSH是什么?为什么要用它? The Remote-SSH extension lets you use any remote machine with a SSH server a ...

  7. SP2-0750: You may need to set ORACLE_HOME to your Oracle software directory 解决办法

    [oracle@localhost oracle]$ ./sqlplus Error 6 initializing SQL*Plus Message file sp1<lang>.msb ...

  8. Mac系统中安装Nginx

    ​ 一.前言 本文介绍一下,如何在Mac系统中安装Nginx,把详细过程记录下来,方便以后查看,也方便大家学习. 二.正文 1.安装 Homebrew homebrew是什么?它是Mac中的一款软件包 ...

  9. 【MySQL】MySQL时区问题、数据库时间相差8小时问题解决

    解决:修改MySQL系统时区,改为东8区. 在命令行界面或者可视化工具下(如:Navicat)依次运行以下命令. 1.查询当前系统时间 select now(); 2.检查MySQL系统时区 show ...

  10. 使用stream流对数据进行处理

    1. 使用场景 本次使用是通过条件查询出所需要的多个字段后,对其进行处理(一个条件查询多个下拉框内容,并对每个下拉框内容封装对象,进行返回) 2. 代码 点击查看代码 //获取所有需要的数据 List ...