文章目录
catkin_make编译系统
编译库
项目名称为autodrive_common
,对应头文件在include
目录下,需要在catkin_package
1中添加INCLUDE_DIRS
和LIBRARIES
,表示当前package(autodrive_common)对外提供的库以及头文件。
project(autodrive_common)
catkin_package(INCLUDE_DIRS include
LIBRARIES autodrive_common)
添加库编译,库由common_lib.cc
源文件生成,最终生成libcomman_lib.so
add_library(common_lib SHARED src/common_lib.cc)
调用库
在需要调用库的包的package.xml
中添加对autodrive_common包的编译和运行依赖:
<build_depend>autodrive_common</build_depend>
<run_depend>autodrive_common</run_depend>
在需要调用库的包中的CMakeLists.txt中用find_package
将查找autodrive_common包作为catkin的components。autodrive_common对外export的头文件和库就会分别添加在变量${catkin_INCLUDE_DIRS}
和${catkin_LIBRARIES}
中,之后在头文件目录设置include_directories
和库链接设置target_link_libraries
时就可以使用这两个变量。
find_package(catkin REQUIRED COMPONENTS
autodrive_common
)
include_directories(
include
$