/:根目录 (根目录下:/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