linux下第三方库的配置和链接——以opencv为例
安装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为例的更多相关文章
- 两分钟搞定VS下第三方库的配置(以GNU Regex Library库为例)
写C的朋友大概知道导入一个库的痛苦,特别是在宇宙第一IDE--VS下更是无从下手,生怕一不小心就把VS搞崩了,而VS的卸载过程又是一个十分头疼的过程.所以,这里特此开了一篇如何在VS下配置第三方库的博 ...
- 深入理解LINUX下动态库链接器/加载器ld-linux.so.2
[ld-linux-x86-64.so.2] 最近在Linux 环境下开发,搞了好几天 Compiler 和 linker,觉得有必要来写一篇关于Linux环境下 ld.so的文章了,google上搜 ...
- 谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH
谈谈Linux下动态库查找路径的问题 ldconfig LD_LIBRARY_PATH PKG_CONFIG_PATH 转载自:http://blog.chinaunix.net/xmlrpc.ph ...
- Linux下动态库生成和使用
Linux下动态库生成和使用 一.动态库的基本概念 1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序.动态链接库是目标文件的集合,目标文件在动态链接库中 ...
- Linux下静态库生成和使用
Linux下静态库生成和使用 一.静态库概念 1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序.静态库以后缀为”.a”的特殊的存档(archive file)存储. ...
- 查看Linux下*.a库文件中文件、函数、变量
查看Linux下*.a库文件中文件.函数.变量等情况在Linux 下经常需要链接一些 *.a的库文件,那怎么查看这些*.a 中包 含哪些文件.函数.变量: 1. 查看文件:ar -t xxx.a 2. ...
- Linux下动态库的使用
1.生成动态库: gcc -fPIC -shared -o libdemo.so demo.c 考虑程式库major的升级会破坏兼容性:而minior的升级则可能不会,一般建议用以下方式来生成动态库. ...
- Linux下的库操作工具-nm、ar、ldd、ldconfig和ld.so
Linux下的库操作工具-nm.ar.ldd.ldconfig和ld.so .nm [options] file 列出file中的所有符号 [option] -c 将符号转化为用户级的名字 -s 当用 ...
- Linux下SVN服务器搭建配置
Linux下SVN服务器搭建配置 1.SVN服务安装 yum install subversion 2.创建SVN代码仓库 mkdir /data/svn svnadmin create /data/ ...
- Linux下的Nginx的配置+Tomcat启动
Linux下的Nginx的配置 首次如果你只仅主机模式,那么请你切换到桥接模式或者net模式. 1.安装编译工具及库文件 yum -y install make zlib zlib-devel gcc ...
随机推荐
- SFC-系统文件检查器
Microsoft (R) Windows (R) Resource Checker 6.0 版 版权所有 (C) Microsoft Corporation.保留所有权利. 扫描所有保护的系统文件的 ...
- java学习日记20230228-数据类型及加号运算
程序中+使用: 1.两侧是数值型,则相加: 2.一方为字符串,则拼接: 3.运算顺序从做到右: 数据类型 每一种数据都定义了明确的数据类型,在内存中分配了不同大小的内存空间: java数据类型 基本数 ...
- '大龄‘后端程序员,快速捡起ECMAScript6
1.Promise 2.迭代器 3.async 4.module 5. this的理解
- Eureka出现Connect to localhost:8761 timed out问题
原先使用application.properties spring.application.name=hello-serviceeureka.client.service-url.defauleZon ...
- csp201503-1(矩阵逆时针九十度旋转)
//矩阵变换的题,要找出两个矩阵各元素横纵坐标之间的关系 #include<bits/stdc++.h> using namespace std; int main() { int a[1 ...
- mysql主从故障跳过错误
mysql主从故障跳过错误1.从库报错 21,22,23,25无法执行Retrieved_Gtid_Set: 265c6c2a-86ca-11ed-b07a-0242ac120002:1-25Exec ...
- CSS控制背景图片100%自适应填充布局
原文地址:http://blog.csdn.net/wd4java/article/details/50537562 .personal_head { width: 100%; height: 35% ...
- mysql:数据库加解密查询
解密:SELECT CONVERT (AES_DECRYPT(UNHEX( column_name), '密钥') USING utf8) AS column_name,from table_name ...
- 组建LAN
推荐 cisco packet tracer 软件,可以画拓扑图,组件局域网等. ---------------------------------- 物联网:世界上很多物体的连接.物联网与现有的互联 ...
- 生产中遇到的spark任务问题
spark版本 2.2.0 日志里面的信息: WARN RowBasedKeyValueBatch: Calling spill() on RowBasedKeyValueBatch. Will no ...