NREL SAM 2025.4.16 源码编译:Windows 10/11 下 CMake + VS2019 完整配置 8 步指南 NREL SAM 2025.4.16 源码编译Windows 10/11 下 CMake VS2019 完整配置指南可再生能源系统建模领域的技术人员经常需要定制化分析工具NREL System Advisor Model (SAM) 的开源特性为此提供了可能。本文将详细介绍在Windows平台下从源码构建SAM 2025.4.16版本的全过程涵盖环境准备、依赖项编译到最终生成可执行文件的完整流程。1. 环境准备与工具链配置编译SAM需要准备以下核心组件版本兼容性至关重要必备软件清单Visual Studio 2019 (Community或Professional版)CMake 3.19或更高版本Git for Windows (用于源码获取)Python 3.8 (可选用于部分脚本功能)提示安装VS2019时务必勾选使用C的桌面开发工作负载包括MSVC v142工具集和Windows 10 SDK。配置基础环境变量以管理员身份运行PowerShell# 检查CMake是否在PATH中 cmake --version # 设置临时编译目录 $env:SAM_DEV C:\sam_dev mkdir $env:SAM_DEV2. 关键依赖项编译2.1 wxWidgets 3.1.5定制编译SAM严格依赖特定版本的GUI库# 下载指定版本源码 curl -LO https://github.com/wxWidgets/wxWidgets/releases/download/v3.1.5/wxWidgets-3.1.5.zip 7z x wxWidgets-3.1.5.zip -o$env:SAM_DEV编译配置步骤打开wx_vc16.sln(VS2019解决方案文件)分别选择以下配置组合执行生成Debug x64Release x64设置环境变量$env:WXWIN $env:SAM_DEV\wxWidgets-3.1.52.2 Google Test框架部署测试框架编译命令示例git clone https://github.com/google/googletest.git cd googletest mkdir build cd build cmake -G Visual Studio 16 2019 -A x64 .. cmake --build . --config Release3. SAM核心组件配置3.1 源码仓库结构化布局创建标准化目录结构并克隆必要仓库sam_dev/ ├── lk/ # Language Kit ├── wex/ # WX扩展 ├── ssc/ # 模拟核心 └── sam/ # 主界面批量克隆命令git clone https://github.com/NREL/lk.git $env:SAM_DEV/lk git clone https://github.com/NREL/wex.git $env:SAM_DEV/wex git clone https://github.com/NREL/ssc.git $env:SAM_DEV/ssc git clone https://github.com/NREL/sam.git $env:SAM_DEV/sam3.2 环境变量矩阵配置必需的环境变量设置变量名路径示例作用域LK_DIRC:\sam_dev\lK系统WEX_DIRC:\sam_dev\wex用户SSC_DIRC:\sam_dev\ssc系统CMAKE_BUILD_DIRC:\sam_dev\build进程配置完成后需要重启所有开发终端使变量生效。4. CMake工程生成在build目录创建CMake配置文件CMakeLists.txtcmake_minimum_required(VERSION 3.19) project(system_advisor_model VERSION 2025.4.16) # 组件编译选项 option(SAM_SKIP_TOOLS 跳过工具编译 OFF) option(SAM_SKIP_TESTS 跳过测试构建 OFF) # 添加子目录 add_subdirectory(lk) add_subdirectory(wex) add_subdirectory(ssc) add_subdirectory(sam)生成VS解决方案文件cmake -G Visual Studio 16 2019 -A x64 ^ -DCMAKE_CONFIGURATION_TYPESDebug;Release ^ -DSAM_SKIP_AUTOGENOFF ..5. Visual Studio编译优化成功生成解决方案后打开system_advisor_model.sln在批生成中仅选择SAM (Release)SAM (Debug)启用并行编译菜单 → 工具 → 选项 → 项目和解决方案 → 最大并行项目生成数典型编译时间参考16核CPU约45分钟8核CPU约1.5小时6. 部署与验证编译产物位于sam_dev/SAM/deploy/x64目录关键文件包括SAM.exe(主程序)ssc.dll(模拟核心库)lk.dll(脚本引擎)首次运行前建议执行# 注册COM组件 regsvr32 $env:SAM_DEV\SAM\deploy\x64\ssc.tlb7. 常见问题排查编译错误处理表错误类型解决方案相关组件LNK1181无法打开输入文件检查wxWidgets环境变量路径wxWidgetsCMake找不到Python安装Python并添加至PATHCMake头文件包含冲突清理解决方案后重新生成VS20198. 高级定制与扩展成功编译基础版本后可考虑以下增强配置Python集成find_package(Python COMPONENTS Interpreter Development) target_link_libraries(sam PRIVATE Python::Python)性能分析支持cmake -DSAM_ENABLE_PROFILINGON ..自定义模块开发在ssc/ssc目录下创建新的cmod_前缀文件修改ssc/CMakeLists.txt添加编译目标对于需要深度定制的用户建议阅读SSC核心模块的架构文档特别是cmod_*.cpp文件的接口规范。编译过程中生成的build/CMakeFiles目录包含详细的编译日志是排查问题的宝贵资源。