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

如何编译不含示例与测试应用的ObjectBox库及功能建议

编译ObjectBox仅保留核心库(排除示例与测试)

本地源码编译实现步骤

  • 克隆ObjectBox仓库后,在CMake配置阶段传入以下参数,直接禁用示例和测试模块:
    cmake -S . -B build -DOBJECTBOX_BUILD_EXAMPLES=OFF -DOBJECTBOX_BUILD_TESTS=OFF
    
  • 执行构建命令完成核心库编译:
    cmake --build build
    
    此时构建过程只会生成ObjectBox核心库文件,不会编译任何示例或测试程序。

FetchContent集成场景的处理方案

如果通过CMake的FetchContent拉取源码集成,需在FetchContent_MakeAvailable调用前强制覆盖ObjectBox的默认配置:

FetchContent_Declare(
  objectbox
  GIT_REPOSITORY https://github.com/objectbox/objectbox-c.git
  GIT_TAG <指定目标版本号>
)

# 强制关闭示例与测试构建
set(OBJECTBOX_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
set(OBJECTBOX_BUILD_TESTS OFF CACHE BOOL "" FORCE)

FetchContent_MakeAvailable(objectbox)

通过FORCE参数确保ObjectBox自身的默认配置被覆盖,避免示例和测试模块被触发构建。


关于优化FetchContent集成体验的建议

目前FetchContent_MakeAvailable是CMake提供的通用命令,无法直接添加特定于ObjectBox的配置选项,但可以从两个方向优化:

  1. ObjectBox侧CMake配置优化:建议默认关闭示例和测试的构建开关,让用户按需手动开启;或者提供一个OBJECTBOX_BUILD_ALL统一开关,默认设为OFF,用户可通过开启该开关同时启用示例和测试模块。
  2. 项目侧封装自定义宏:在自己的项目中封装一个专用宏,内置禁用示例和测试的逻辑,简化配置步骤:
    macro(FetchContent_MakeAvailable_ObjectBox)
      set(OBJECTBOX_BUILD_EXAMPLES OFF CACHE BOOL "" FORCE)
      set(OBJECTBOX_BUILD_TESTS OFF CACHE BOOL "" FORCE)
      FetchContent_MakeAvailable(objectbox)
    endmacro()
    
    后续只需调用这个自定义宏,就能快速完成无示例的ObjectBox集成。

内容的提问来源于stack exchange,提问作者Ignatius Lijo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 08:52:04