ubuntu常用命令总结

1.包管理

  • dpkg --list 用来列出所有的安装包
  • dpkl -L libname 查找libname的所有安装文件
  • apt-cache search libname ,查找相关包
  • apt-cache show libname,显示软件包的详细信息
  • apt-get install libname,安装

2.usr/bin/ld: cannot find 错误解决方法

通常在软件编译时出现的usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的ld检索目录中(检索目录为/usr/lib,和/usr/local/lib)。

解决方式:

1。确认库文件是否存在,比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 如果只是存在lib123.so.1,

那么可以通过ln -sv lib123.so.1 lib123.so,建立一个连接重建lib123.so.(注意,链接的路径需要写为绝对路径)

2。检查/etc/ld.so.conf中的库文件路径是否正确,如果库文件不是使用系统路径,/usr/lib, /usr/local/lib, 那么必须在文件中加入。

3。ldconfig 重建ld.so.cache文件,ld的库文件检索目录存放文件。尤其刚刚编译安装的软件,必须运行ldconfig,才能将新安装的库文件导入ld.so.cache.

3. 同时安装和使用不同版本的库

安装
ubantu 下常用的库安装位置有两个:/usr 和/usr/local. 通过apt-get 安装的库位于/usr,自己make install的库通常位于/usr/local下。安装位置通常按照 include,lib,share文件夹来组织,include和lib分别存放头文件和库文件,而cmake模块通常在share里。如果我们要将库安装到自己指定的位置只需要在cmake时给CMAKE_INSTALL_PREFIX赋值即可,cmake DCMAKE_INSTALL_PREFIX=/usr/my,这样库就安装到/usr/my下了,在使用时find_package是找不到这个位置的,需要指定模块的位置才能正常使用.

使用
find_package()命令的原理是找到模块文件,并从中提取变量,之后我们就能正常使用OpenCV_LIB等变量了.模块文件后缀是cmake,通常位于/usr/share或/usr/local/share下,cmake默认搜索的也是这两个位置.尝试以下cmakelist,将搜索出系统中所有opencv模块的位置以及版本

PROJECT(test)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
FIND_PACKAGE(OpenCV 8 REQUIRED)#尝试找一个不存在的版本

通常我们需要使用特定版本,在cmake之前赋值OpenCV_DIR变量为自己需要的opencv版本的模块位置即可.

PROJECT(test)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(OpenCV_DIR /usr/share/OpenCV/)#这里写自己需要的opencv版本的模块位置
FIND_PACKAGE(OpenCV REQUIRED)
MESSAGE(KaTeX parse error: Expected 'EOF', got '#' at position 18: …penCV_VERSION})#̲输出看一下 MESSAGE({OpenCV_DIR})

4.二进制库文件,安装到系统

sudo cp -r * /usr/local

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值