This commit is contained in:
xiaojiazhu 2023-07-20 08:22:47 -07:00
commit 75068605ce

View File

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