首页 > 学院 > 开发设计 > 正文

【机器人学】机器人开源项目KDL源码学习:(4)examples中的CMakeList.txt文件解读

2019-11-06 08:42:33
字体:
来源:转载
供稿:网友

通过学习KDL开源项目的代码可以学习CMake构建程序的知识,现简单介绍一下orocos_kinematics_dynamics-master/orocos_kinematics_dynamics-master/orocos_kdl/examples/CMakeList.txt文件的指令。

IF(ENABLE_EXAMPLES)INCLUDE_DIRECTORIES(${PROJ_SOURCE_DIR}/src ${PROJ_SOURCE_DIR}/models ${PROJ_BINARY_DIR}/src)add_executable(geometry geometry.cpp )TARGET_LINK_LIBRARIES(geometry orocos-kdl)add_executable(trajectory_example trajectory_example.cpp )TARGET_LINK_LIBRARIES(trajectory_example orocos-kdl)add_executable(chainiksolverpos_lma_demo chainiksolverpos_lma_demo.cpp )TARGET_LINK_LIBRARIES(chainiksolverpos_lma_demo orocos-kdl orocos-kdl-models)ENDIF(ENABLE_EXAMPLES)逐句解读:

IF(ENABLE_EXAMPLES)

判断是表达式ENABLE_EXAMPLES是否为ON,默认是OFF,要想该更改值需要在orocos_kdl/CMakeList.txt文件中将OPTION(ENABLE_EXAMPLES OFF “Enablebuilding of examples”)行中的OFF改成ON。

INCLUDE_DIRECTORIES(${PROJ_SOURCE_DIR}/src${PROJ_SOURCE_DIR}/models ${PROJ_BINARY_DIR}/src)

为构建树添加包含路径,如果没有这一句,那么在make以后,会显示chainiksolverpos_lma_demo.cpp中的第一句include “frame_io.hpp”编译无法通过,因为没有指定frame_io.hpp的路径。

add_executable(geometrygeometry.cpp )TARGET_LINK_LIBRARIES(geometryorocos-kdl)

将源文件生成一个可执行文件,将静态链接库orocos-kdl连接到目标geometry上,如果没有target_link_libraries,那么src中的源文件的函数就不能被调用。

add_executable(trajectory_exampletrajectory_example.cpp )

TARGET_LINK_LIBRARIES(trajectory_exampleorocos-kdl)

add_executable(chainiksolverpos_lma_demochainiksolverpos_lma_demo.cpp )

TARGET_LINK_LIBRARIES(chainiksolverpos_lma_demoorocos-kdl orocos-kdl-models)

这四行同理。

ENDIF(ENABLE_EXAMPLES) 

第一行IF的结束语句。


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表