airmosaic-ai

GCAM 构建、依赖与排错

完整的准备、编译、输入生成、启动和验收顺序见编译与运行;本页集中解释错误类别,历史参考保留中文。

GCAM C++ 模型编译、gcamdata 的 R 数据处理、Java/BaseX 输出读取是不同环节。现有 AirMosaic 适配器只分析已有模型输出;不会编译 GCAM、生成输入 XML、修复发行包或启动模拟。

准备与编译顺序

  1. 先确认是否需要编译:使用兼容的发行包做输出分析通常不需要重建模型。GCAM-China 分支与官方主线的版本、依赖、可执行文件不能默认互换。
  2. 固定源码、子模块和目标平台,核对该版本构建文件。官方构建文档说明新版本要求 C++17;旧本地环境的 Java/Python/Boost 配方只作为历史参考,不能照搬到新版本。
  3. 明确 C++ 工具链、Boost/Eigen、Hector;启用并行或 Java 输出时另核对对应 TBB、JDK/JNI 和 JAR。路径由个人配置在任务环境设置,不提交本机值。
  4. 在独立外部源码/构建副本编译,限制并行度,记录实际退出状态与新二进制。Windows 使用匹配版本的 Visual Studio 项目,POSIX 使用该分支 Makefile;本说明不提供跨平台通用构建脚本。
  5. 编译成功后先核对链接依赖。后续模型任务须另有输入与执行授权;构建成功不代表 XML、求解或输出数据库正确。官方构建说明。

问题分类

现象 可能原因与排查位置 处理及验证
Boost/Eigen 头文件找不到 include 根与该分支目录布局不匹配 依据构建文件核对 BOOST_INCLUDE/EIGEN_INCLUDE,不复制作者绝对路径;确认首次失败的 include 消失
C++ 标准相关错误 工具链或标准标志不符合目标版本 核对编译器和该分支要求;在新构建副本验证,不直接删除出错的模型功能
Hector 文件或目标缺失 子模块未初始化、版本或安装位置不匹配 检查固定版本子模块与分支规定的构建顺序,避免拉取任意最新 Hector
JNI/Java include 或链接失败 只有 JRE、JDK include 平台子目录不对、架构不匹配 核对 JAVA_INCLUDE/JAVA_LIB 与编译架构,JDK 的 libjvm 布局随发行版变化,不套旧路径
TBB 符号或接口错误 并行选项、TBB 代际与工具链不兼容 按目标源码所需 API 核对头文件/库配对,不能认为安装最新包必然兼容
同一源码在旧对象上持续报错 旧编译器/标志生成的对象被混用 使用新工作副本重建并记录目标;不在运行中的模型目录执行清理
编译进程被杀 内存、磁盘或并行资源超限 查看资源与退出信息,降低并行度后验证;不要把资源问题当科学代码缺陷
二进制启动时缺 DLL/共享库 构建与运行环境、架构或运行库不一致 检查具体依赖,不从未知网站下载 DLL 或全局修改环境
Java/BaseX 类或 JVM 加载失败 JAR/classpath、JVM、发行包版本或 JAR 选择不匹配 按所选发行包核对输出读取链;JARS_LIB 的文件/通配规则以分支构建文件为准,避免随意替换数据库引擎
XML 读取、数据库锁或求解失败 模型配置/输入、共享输出冲突或科学口径 归入运行时问题;使用新任务输出并核对配置,不因重编译而跳过输入验收

头文件、TBB 和 Java 路径检测可对照官方 Linux 构建配置。它是浮动主线参考,实际以所选分支文件为准。表中的 ABI、资源和运行环境问题是工程排查建议,非本轮复现结果。

与 AirMosaic 的衔接

源码构建使用任务明确指定的外部目录;GCAM_RELEASE_DIR 是现有输出分析的模型发行包根,两者不能混淆。只设置 JAVA_HOME 或 PATH 不保证 runner 的最小子进程环境采用个人设置;依赖检查及 Java/BaseX 固定资源约束见模型使用指南。

本轮只查阅本地 GCAM-China 使用指南的编译段落及官方资料,未读取原始数据、安装包、编译或启动 GCAM。原始配置、日志和个人环境不随排错说明发布。