2026/4/18 16:15:31
网站建设
项目流程
大连网站前端制作公司,石家庄邮电职业技术学院,中山企业网站推广,专业网络推广服务一、基本介绍add_library 是 CMake 中创建库文件#xff08;静态库或动态库#xff09;的核心命令。它的主要作用是将源代码文件编译成库#xff0c;以便在项目中复用或被其他目标链接。基本语法如下所示#xff1a;add_library(name [STATIC | SHARED | MODULE][E…一、基本介绍add_library是 CMake 中创建库文件静态库或动态库的核心命令。它的主要作用是将源代码文件编译成库以便在项目中复用或被其他目标链接。基本语法如下所示add_library(name [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 [source2 ...])各参数说明如下1、库类型(1静态库 STATIC 最终生成.a或.lib例如add_library(mylib STATIC src1.cpp src2.cpp)(2) 动态库 SHARED (最终生成.so 或 .dll)例如add_library(mylib SHARED src1.cpp src2.cpp)(3) 插件式动态库 MODULE通常不被直接链接(4) 不指定类型根据BUILD_SHARED_LIBS变量决定set(BUILD_SHARED_LIBS ON) # 默认为动态库2、EXCLUDE_FROM_ALL 参数理解EXCLUDE_FROM_ALL是cmake中的一个控制构建行为的标志它的作用是标记某个目标默认不构建除非该目标被明确指定或作为其他目标的依赖。使用场景1构建可选的组件/插件# 主要应用程序默认构建 add_executable(main_app main.cpp) # 可选插件默认不构建 add_library(plugin_a EXCLUDE_FROM_ALL plugin_a.cpp) add_library(plugin_b EXCLUDE_FROM_ALL plugin_b.cpp) # 只有在明确请求时才构建插件 # cmake --build . --target plugin_a2测试目标# 主库默认构建 add_library(main_lib src/core.cpp) # 测试程序默认不构建 add_executable(run_tests EXCLUDE_FROM_ALL tests/test1.cpp tests/test2.cpp ) # 构建测试需要明确指定 # cmake --build . --target run_tests大型项目模块化构建或者测试套件管理可以使用这种思路。3、源文件添加.h不参与构建只需要添加.cpp文件。