embedded-framework/doc/cmake_exploitReport.md
2023-07-20 08:22:47 -07:00

30 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 1.cmake开发报告
## 1.1 前言
该篇md用于ipc项目下log功能的cmakelist的开发报告以阐述其功能和组成。
## 1.2 功能介绍
* 设置库文件输出路径:`set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})`.
该语句用于设置该功能的静态库的生成路径,其中`${LIBS_OUTPUT_PATH}`在/build/cmake/global_config.cmake被定义在项目根目录的/out/libs/。
* 添加实现功能的文件目录:`include_directories(./)`.
该语句旨在向编译器告知该功能的实现文件和头文件的所在位置。
* 添加功能目录到搜索路径:`set(CMAKE_AUTOMOC ON);set(CMAKE_INCLUDE_CURRENT_DIR ON)`
这些 CMake 命令支持自动处理 Qt moc元对象编译器并将当前目录设置为包含在包含文件的搜索路径中;在构建过程中自动运行Qt moc编译器用于包含Q_OBJECT宏的任何源文件。这对于为信号和插槽生成必要的C++代码是必需的;该选项将当前源目录添加到包含文件的搜索路径中。这允许构建系统查找与正在编译的源文件位于同一目录中的头文件。
* 收集、生成头文件列表:`file(GLOB_RECURSE HEADER_FILES "*.h")`
该语句的功能是搜索当前目录及其子目录中扩展名为 .h 的所有文件。生成的文件列表存储在 HEADER_FILES 变量中。
* 收集源文件列表:`aux_source_directory(. SRC_FILES)`
在本语句中aux_source_directory.SRC_FILES 从当前目录(由 . 及其子目录中收集所有源文件(例如,.cpp 个文件),生成的文件列表存储在 SRC_FILES 变量中。
* 添加编译器标志和定义到当前目录及其子目录:`add_definitions("-fexceptions")`
添加编译器标志`-fexceptions`以在代码中启用异常处理。此标志告诉编译器生成支持捕获和引发异常的代码。通过使用 add_definitions(),可以将特定的编译器标志或定义全局应用于项目或特定源文件。
* 创建静态库目标:`add_library(xlog STATIC ${SRC_FILES} ${HEADER_FILES})`
在这种情况下本语句使用提供的源文件和头文件列表创建一个名为“xlog”的静态库目标;`STATIC`关键字指定库将构建为静态库,这意味着库代码将在编译时直接链接到最终可执行文件中;`${SRC_FILES}`变量包含应编译并链接到库中的源文件(通常.cpp文件的列表。${HEADER_FILES} 变量包含头文件(通常为 .h 文件)的列表,这些文件定义库使用的接口和声明。
## 1.3 总结
该篇cmakelists.txt的主要用途是对ipc项目下xlog功能的显现文件的编译和汇总。