ROS编译
- catkin_make是cmake,make的进一步封装。路径位于workspace下,src之上使用:
catkin_make
ros会自己找到src下面的源代码,并开始build,如果src下面有好几个源代码,就通过DCATKIN_WHITELIST_PACKAGES指定一个就行:
1 |
|
安装则
catkin_make install
, 使用catkin_make -DCMAKE_INSTALL_PREFIX=/opt/ros/groovy install
指定要安装在哪里。清理安装文件
catkin_make clean
。
环境配置
如果发现ros依赖的python2和conda使用的python3版本出现冲突,需要使用
catkin_make -DPYTHON_EXECUTABLE=/usr/bin/python3
来手动选择版本,但是一味的设置python3,会导致ros本身出现不小的问题。按照opencv_contrib官网的命令,找到对应版本的opencv和opencv_contrib(3.4.19),重新编译了带有opencv_contrib的opencv(之前版本是3.2.0),中间由于版本问题,搞错了很多次。最终opencv安装于:/usr/local/include/opencv2,/usr/local/bin/和/usr/local/lib
常见操作
- 查看ros版本
rosversion -d
- 查看某个软件的版本
pkg-config --modversion ***
pkg-config 是通过.pc文件查找看有那些库文件的。
默认情况下,会去 prefix/lib/pkgconfig/ 路径下查找,具体到 Linux 系统,就是 /usr/lib/pkgconfig/ 目录,若找不到,则会去 PKG_CONFIG_PATH 环境变量指定的路径下查找。因此,如果我们安装的库文件不在系统环境变量中,需要将其添加到 PKG_CONFIG_PATH 中.
如果实在是找不到,那么可以根据这个教程手动创建一个。
e.g. 查看opencv的版本
pkg-config --modversion opencv
3.2.0
pkg-config --cflags opencv
-I/usr/include/opencv
pkg-config --cflags --libs opencv
-I/usr/include/opencv -lopencv_shape -lopencv_stitching -lopencv_superres -lopencv_videostab -lopencv_aruco -lopencv_bgsegm -lopencv_bioinspired -lopencv_ccalib -lopencv_datasets -lopencv_dpm -lopencv_face -lopencv_freetype -lopencv_fuzzy -lopencv_hdf -lopencv_line_descriptor -lopencv_optflow -lopencv_video -lopencv_plot -lopencv_reg -lopencv_saliency -lopencv_stereo -lopencv_structured_light -lopencv_phase_unwrapping -lopencv_rgbd -lopencv_viz -lopencv_surface_matching -lopencv_text -lopencv_ximgproc -lopencv_calib3d -lopencv_features2d -lopencv_flann -lopencv_xobjdetect -lopencv_objdetect -lopencv_ml -lopencv_xphoto -lopencv_highgui -lopencv_videoio -lopencv_imgcodecs -lopencv_photo -lopencv_imgproc -lopencv_core
sudo find / -iname ``"*opencv*"
查看ubuntu中有那些地方包含了opencv找到当前仓库中的opencv.pc的路径是在/usr/lib/x86_64-linux-gnu/pkgconfig/opencv.pc。猜测其他的pc可能在镜像制作的时候,也是被放在这里。