在ros环境和qt环境下进行cmake编译,编写CMakeLists.txt文件

CMakeLists.txt

CMakeLists.txt 是一个用于构建 CMake 项目的配置文件。CMake 是一个跨平台的构建系统生成工具,用于管理和构建软件项目。CMakeLists.txt 文件是在 CMake 中定义项目的基本配置和构建规则的文本文件。

、常用指令

1.指定项目所需的最低CMake版本。

cmake_minimum_required(VERSION 3.0.2)

2.定义项目的名称

project(xxx)

3.查找并导入外部依赖库

find_package(catkin REQUIRED COMPONENTS roscpp)

4.用于指定包的依赖关系,由依赖于这个包的其他软件包使用。

catkin_package(

#  INCLUDE_DIRS include #包的导出包含路径

# LIBRARIES marker #从项目中导出的库

#  CATKIN_DEPENDS roscpp #本项目依赖的其他catkin项目

#  DEPENDS system_lib #此项目所依赖的非 catkin CMake 项目

)

5.添加头文件搜索路径,编译器使用这些目录来查找头文件,第一个参数“include”表示包中的include/目录也是路径的一部分。

include_directories(

  include

  ${catkin_INCLUDE_DIRS}

)

6.定义可执行文件的构建规则。指定将要构建的可执行文件的名称,以及它所依赖的源文件。

add_executable(${PROJECT_NAME}_node src/xxx.cpp)

7.定义库文件的构建规则。

add_library(${PROJECT_NAME} src/xxx.cpp)

8.在定义消息类型时,编译的可执行文件依赖这些动态生成的代码,需要使用${PROJECT_NAME}_generate_messages_cpp进行配置。

add_dependencies(${PROJECT_NAME}_node ${PROJECT_NAME}_generate_messages_cpp)

9.设置可执行文件依赖的库。

target_link_libraries(${PROJECT_NAME}_node ${catkin_LIBRARIES})

10.定义目标之间的依赖关系

add_dependencies(xxx xxxx) xxx需要依赖xxxx

11. 消息/服务/动作生成器

add_message_files(FILES xx.msg)

add_service_files()

add_action_files()

 12.声明生成消息/服务/动作需要依赖的消息以及服务

generate_messages(DEPENDENCIES

                std_msgs)

13.安装

install()

、在QT环境下进行编译

1.寻找Qt的包

find_package(Qt5 REQUIRED COMPONENTS Widgets )

2.设置

set(CMAKE_AUTOMOC ON)#设置自动生成moc文件,一定要设置

set(CMAKE_AUTOUIC ON)

set(CMAKE_INCLUDE_CURRENT_DIR ON)#设置工程包含当前目录,非必须

3.链接Qt库

target_link_libraries(${PROJECT_NAME}_node  Qt5::Widgets )

猜你喜欢

转载自blog.csdn.net/m0_67254672/article/details/132145411