添加系统库依赖
这里提到的系统库有一个共同的特点,就是他们保存在标准路径下,比如rclcpp
、sensor_msgs
等。
那么,何为标准路径?标准路径是指系统默认查找头文件和库文件的路径,对于Linux系统来说,他的标准路径有以下几种:
头文件标准路径:
/usr/include
/usr/local/include
库文件标准路径:
/usr/lib
/usr/local/lib
比如我们在程序中使用
#include<...>
时,编译器会首先会查找当前项目的include目录,如果没有就去上面提到的标准路径中去找,如果没有找到,就会报错。
对于这类库,通常只需要进行如下添加即可:
1、在package.xml
中添加如下内容:
<depend>rclcpp</depend>
2、在CMakeLists.txt
中添加如下内容:
find_package(rclcpp REQUIRED)
ament_target_dependencies(target rclcpp)
添加第三方库依赖
第三方库依赖往往是在需要时安装到电脑上的,这就意味着,PCL并不是保存在标准路径下的,所以无法直接实现链接,比如PCL库文件。
所以我们在链接前需要添加一步,总过程如下:
1、在package.xml
中添加如下内容:
<depend>PCL</depend>
2、在CMakeLists.txt
中添加如下内容:
find_package(PCL REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
ament_target_dependencies(target PCL)
include_directories
命令会指定编译器查找路径,具体来说就是会在上面提到的搜索顺序中查找标准路径之前,先查找这里制定的路径,这样就实现了第三方库的链接。