You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何仅编译CMake项目中的特定插件而无需重建整个项目?

解决CMake项目仅编译特定插件的问题

嘿,我来帮你搞定这个不用全量重建项目、只编译特定插件的需求!下面分步骤给你讲清楚怎么做:

第一步:确保插件是CMake独立目标

首先得保证你的MyPlugin在CMake里被定义成了独立的构建目标。在/home/gaurab/Desktop/project/src/applications/plugins/MyPlugin目录下,你需要有一个CMakeLists.txt,内容大概是这样:

# 定义插件为共享库(插件通常用SHARED类型)
add_library(MyPlugin SHARED
    MyPlugin.cpp
    MyPlugin.h
    # 把你的其他源文件也逐一添加进来
)

# 链接插件依赖的项目核心库或第三方库
target_link_libraries(MyPlugin
    PRIVATE
    # 替换成你项目里实际的核心库名称
    ProjectCoreLib
)

然后,在它的上层目录(applications/plugins)的CMakeLists.txt里,要添加一行引入插件的构建配置:

add_subdirectory(MyPlugin)

这样CMake才能识别到MyPlugin这个独立目标。

第二步:单独编译插件的两种方式

方式一:命令行编译

先进入你的构建目录:

cd /home/gaurab/Desktop/project/build/v17.06

然后运行CMake的定向构建命令:

cmake --build . --target MyPlugin

这个命令只会编译MyPlugin目标,以及它直接依赖的、有修改的文件,不会全量重建整个项目。如果你的构建系统是Makefile,也可以直接用:

make MyPlugin

如果是Ninja构建系统,就用:

ninja MyPlugin

方式二:CMake GUI里定向构建

如果你习惯用CMake GUI操作:

  1. 确保你已经完成过Configure和Generate步骤(如果刚添加了新插件,需要重新跑一遍Configure让CMake识别新目标)
  2. 点击界面上Build按钮旁边的下拉菜单,选择Build Target
  3. 在弹出的目标列表里找到MyPlugin,选中后点击构建即可

几个实用注意点

  • 刚添加的新插件,一定要先在CMake GUI里重新执行Configure和Generate,不然CMake找不到这个新目标
  • CMake会自动处理插件的依赖:只有当插件本身或者它依赖的文件有修改时,才会重新编译对应的部分,不用你手动梳理依赖
  • 如果想清理插件的编译产物,可以用cmake --build . --target clean-MyPlugin(对应Makefile的make clean-MyPlugin)

内容的提问来源于stack exchange,提问作者gaurab m

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 11:21:28