【UBUNTU】疑难杂症

/:根目录 (根目录下:/home/z/…)
~:主目录

ubuntu 打开任务管理器命令行命令
gnome-system-monitor

查看rosbag中的内容,不解包
rosbag info XX.bag

建立文件夹,建立文本
mkdir
touch

查看文件的读写执行状态
ll

赋予、取消执行权限
chmod +x
chmod -x

查看eigen库版本
sudo gedit /usr/include/eigen3/Eigen/src/Core/util/Macros.h

查看opencv版本
pkg-config --modversion opencv

查看ceres版本
打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,在里面可以看到版本号。

清空build文件下所以文件
rm -rf *

配置cmake文件ing,调用库文件和头文件有三种方式
1.纯路径:
头文件:include_directories
库文件:target_link_libaries+(相对或绝对路径)
2.find_package:
先声明一个find_package(XXX REQUIRED)先拿到两个返回值,包含了库文件和头文件的绝对路径:XXX_INCLUDE_DIR 头文件路径和XXX_LIBRARY 库文件路径
后续调用需要加上&{ … }
但是首先要确定XXX所在的位置,

sudo updatedb
locate XXX | grep cmake

会出现XXXconfig.cmake文件,XXX即所要的。
但是要注意里面有没有&{XXX_INCLUDE_DIR },&{XXX_LIBRARY }提前定义好!
举个例子:

add_executable(my_bin src/my_bin.cpp)
find_package(OpenCV REQUIRED)
include_directories(${OpenCV_INCLUDE_DIRS})
target_link_libraries(my_bin, ${OpenCV_LIBS})

3.A :: a:
如果上面一种XXXconfig.cmake文件中没有提前定义好,那么find_package得到的将是两个空地址,这时候需要找一个XXXtarget.cmake文件,找到里面A::a这一调用格式,此格式可以直接当库用(target_link_libaries),甚至不需要包含头文件 (include_directories)。

linux下编译
例如调用OpenCV的时候(OpenCV已经安装,而且默认安装在/usr/inlcude/opencv4/opencv2路径中,)
而我们cpp文件引入头文件的时候:

#include<opencv2/opencv.hpp>
.....
....

这里的相对路径是因为g++一般都是直接去/usr/include下面找,但是里面没有opencv2,而opencv2在opencv4下面,所以需要链接过去:

sudo ln -s /usr/include/opencv4/opencv2 /usr/inlcude/opencv2

cp复制过去也可以,一个是快捷方式,一个是复制一份。
再或者不链接或者复制也没关系,在opencv2/opencv.hpp前面加个opencv4也可以。

删除某个库,但是依旧显示安装了然而没找到
是因为usr/local/lib/cmake下面还有config.cmake

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值