完整的准备、编译、输入生成、启动和验收顺序见编译与运行;本页集中解释错误类别,历史参考保留中文。
GCAM C++ 模型编译、gcamdata 的 R 数据处理、Java/BaseX 输出读取是不同环节。现有 AirMosaic 适配器只分析已有模型输出;不会编译 GCAM、生成输入 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、资源和运行环境问题是工程排查建议,非本轮复现结果。
源码构建使用任务明确指定的外部目录;GCAM_RELEASE_DIR 是现有输出分析的模型发行包根,两者不能混淆。只设置 JAVA_HOME 或 PATH 不保证 runner 的最小子进程环境采用个人设置;依赖检查及 Java/BaseX 固定资源约束见模型使用指南。
本轮只查阅本地 GCAM-China 使用指南的编译段落及官方资料,未读取原始数据、安装包、编译或启动 GCAM。原始配置、日志和个人环境不随排错说明发布。