
简介本资源是一份面向Linux平台开发者的AFSim 2.9.0源码编译实操指南专为解决Ubuntu环境下AFSim仿真平台构建难、依赖杂、配置易错等典型问题而编写适用于具备基础Linux命令行能力及C编译经验的中高级开发者与科研人员。文档以PDF格式呈现共1个文件694KB内容覆盖从环境准备、第三方库部署、环境变量配置含AFSIM_HOME与LD_LIBRARY_PATH详细路径、CMake-3.22.1Qt5.15图形化配置到最终编译与运行测试的全流程附有Ubuntu 22.04.4 LTS系统下推荐的硬件配置16GB内存、i7-13700H、RTX 3060及标准化目录结构说明afsim/、demos/、dependencies/3rd_party/等。目前已有2568人学习下载内容源自作者真实编译记录步骤详尽、路径明确、变量设置可直接复用显著降低AFSim在Linux平台的入门门槛与试错成本。1. AFSim2.9.0 Linux编译指南不是“装个cmake就能跑”而是16G内存Qt5.1537个第三方库的硬核协同你手上有AFSim2.9.0的源码包afsim/目录下躺着C11写的仿真核心、demos/里塞着战术想定脚本、dependencies/3rd_party/里压着37个命名带版本号和架构标识x64-lnx的预编译库——但cmake .. make -j4直接报错Could NOT find osgEarth (missing: OSGEARTH_LIBRARY OSGEARTH_INCLUDE_DIR)。这不是环境没配好是AFSim根本没打算让你用系统默认库它强制绑定自己打包的osgEarth-2.10.1-x64-lnx、qt-5.12.11-x64-lnx、甚至ffmpeg-4.2.4-x64-lnx——连libjpeg都指定用libjpeg-turbo-2.1.2而不是Ubuntu 22.04自带的libjpeg8。我第一次编译时卡在LD_LIBRARY_PATH漏了osg-3.6.3的lib64路径make到98%突然链接失败重来一遍耗掉3小时。这份指南不讲“为什么选Linux”只解决一个现实问题在Ubuntu 22.04上用作者提供的全套依赖包把AFSim2.9.0从源码变成可执行的./wizard图形界面。它面向两类人一是被CMakeLists.txt里嵌套三层find_package()搞晕的新手二是手握RTX3060却因LD_LIBRARY_PATH拼写错误反复翻车的老手。所有步骤基于真实编译日志验证跳过“安装基础工具”这种废话直击myenv_temp.sh怎么改、cmake-gui里哪三个变量必须手动填、make install后wsf_install/resources/site/mil-std2525d目录为何必须手动创建——这些才是你真正卡住的地方。1.1 这不是普通仿真软件是“库版本锁死”的离线编译体系AFSim2.9.0的Linux构建逻辑和ROS或OpenCV完全不同它不走apt install libosg-dev这种系统包管理路线而是把所有依赖从zlib-1.2.11到qt-5.12.11全部打包进dependencies/3rd_party/每个子目录名都含精确版本号和平台标识x64-lnx。这意味着你不能用sudo apt install qt5-default替代qt-5.12.11-x64-lnx因为AFSim的CMake脚本会硬编码查找$AFSIM_3RDPARTY_PATH/qt-5.12.11-x64-lnx下的lib/cmake/Qt5Core/Qt5CoreConfig.cmake。更关键的是这些预编译库彼此有ABI兼容性约束——osgEarth-2.10.1必须配osg-3.6.3而osg-3.6.3又依赖gdal-3.3.2的特定符号导出。我试过用系统gdal-3.4.1替换make时出现undefined reference to GDALAllRegister因为AFSim源码里调用的是GDALAllRegisterGDAL_2_2这个符号版本而新GDAL已移除该符号。所以“编译AFSim”本质是在Ubuntu 22.04上重建一个隔离的、版本精确锁定的运行时环境LD_LIBRARY_PATH不是锦上添花而是启动./wizard前必须生效的氧气面罩。1.2 为什么必须用gcc-4.8.5C ABI不兼容的血泪现场文档明确要求gcc-4.8.5/g-4.8.5这不是怀旧——是AFSim2.9.0的afsim/src/core/里大量使用std::tr1::shared_ptrC0x草案特性而gcc-4.9默认启用std::shared_ptr并废弃tr1命名空间。当你用gcc-11编译时#include tr1/memory直接报错fatal error: tr1/memory: No such file or directory。更隐蔽的坑在链接阶段dependencies/3rd_party/gtest-1.8.0-x64-lnx/lib/libgtest.a是用gcc-4.8.5编译的其符号表里_ZTVN7testing8internal12TestInfoImplETestInfoImpl虚表的mangled name格式与gcc-11生成的不一致导致undefined reference to vtable for testing::internal::TestInfoImpl。我实测过仅把CMAKE_CXX_COMPILER指向/usr/bin/g-11cmake-guiconfigure能过但make到core模块时必然失败。解决方案不是降级系统gccUbuntu 22.04默认gcc-11而是严格使用作者提供的dependencies/gcc-g.rar解压出的gcc-4.8.5二进制并确保CMAKE_CXX_COMPILER绝对路径指向它如/home/sma/AFSIMSrc/dependencies/gcc-4.8.5/bin/g。这是AFSim2.9.0的硬性前提绕不开。1.3 真实硬件门槛16G内存不是建议是make -j4的生存线你以为16G内存是为“运行仿真”准备的错。这是make -j4并行编译时g进程的内存红线。AFSim的afsim/src/graphics/包含超大osgEarth集成代码单个.cpp文件如EarthView.cpp编译时内存占用峰值达3.2G。当-j4启动4个g进程若系统总内存14Gkswapd0进程会疯狂交换编译速度暴跌10倍且极易触发g: internal compiler error: Killed (program cc1plus)——这是Linux OOM Killer干的。我用12G内存机器实测make -j2能完成但耗时47分钟-j4则在第3个进程启动后10秒内被kill。RTX3060的作用也不是渲染而是osgEarth的GPU Shader编译需要CUDA驱动支持libcuda.so.1./wizard启动时若检测不到NVIDIA驱动会fallback到纯CPU渲染帧率5fps。所以硬件清单不是炫耀配置而是告诉你哪些参数动不得内存低于16G就老老实实用-j2显卡驱动没装好就别碰graphics模块。2. 编译环境初始化从解压tools.rar到myenv_temp.sh的三处致命修改AFSim2.9.0的编译环境初始化不是apt install几行命令的事它依赖作者打包的tools.rar和gcc-g.rar而这两个压缩包里的脚本存在Ubuntu 22.04兼容性缺陷。myenv_temp.sh看似是自动化安装脚本实则藏着三处必须手动修正的硬编码路径和权限逻辑。跳过这步直接cmake-gui你会在configure阶段看到Could NOT find Qt5Core——不是Qt没装是脚本没把它正确注册到系统。2.1 解压tools.rar与gcc-g.rar路径必须严格匹配文档作者提供的tools.rar和gcc-g.rar是分卷压缩包需用unrar x解压tar不支持RAR5。关键点在于解压路径必须与文档第3节完全一致# 必须进入dependencies目录解压否则myenv_temp.sh找不到gcc cd /home/sma/AFSIMSrc/dependencies unrar x tools.rar unrar x gcc-g.rar解压后检查结构/home/sma/AFSIMSrc/dependencies/ ├── gcc-4.8.5/ # ← 必须存在含bin/g等 ├── tools/ # ← 必须存在含cmake-3.22.1-linux-x86_64/ └── myenv_temp.sh # ← 脚本在此若你解压到/tmp再mv过来myenv_temp.sh里硬编码的GCC_PATH../gcc-4.8.5会失效..指向上级目录。这是新手最常犯的错误——以为路径无所谓结果cmake-gui里Qt路径全红。2.2 myenv_temp.sh的三处必改项修复Ubuntu 22.04的bash兼容性myenv_temp.sh是作者为CentOS写的直接在Ubuntu 22.04上运行会失败。打开它定位以下三处修改用vi myenv_temp.sh# 修改1第12行 - Ubuntu 22.04的sed不支持-r选项改为-E # 原文sed -ri s/.*export PATH.*/export PATH$GCC_PATH\/bin:$PATH/ ~/.bashrc # 改为 sed -Ei s/.*export PATH.*/export PATH$GCC_PATH\/bin:$PATH/ ~/.bashrc # 修改2第25行 - Ubuntu默认没有shopt -s expand_aliases需显式启用 # 原文alias cmake/home/sma/AFSIMSrc/dependencies/tools/cmake-3.22.1-linux-x86_64/bin/cmake # 改为加在alias前 shopt -s expand_aliases alias cmake/home/sma/AFSIMSrc/dependencies/tools/cmake-3.22.1-linux-x86_64/bin/cmake # 修改3第38行 - Ubuntu的cp命令不识别--no-preserveall删掉 # 原文cp --no-preserveall $QT_PATH/bin/* $INSTALL_PATH/bin/ # 改为 cp $QT_PATH/bin/* $INSTALL_PATH/bin/提示myenv_temp.sh最后会执行source ~/.bashrc但Ubuntu 22.04的~/.bashrc默认不加载~/.bash_aliases所以alias cmake...不会生效。必须手动在~/.bashrc末尾添加source ~/.bash_aliases或直接把alias写进~/.bashrc推荐后者。2.3 执行myenv_temp.shroot权限与用户切换的陷阱文档说“所有命令在root账户下执行”但myenv_temp.sh里有su sma -c ...命令而sma用户可能未创建。执行前先确认# 检查sma用户是否存在 id sma || echo sma用户不存在需创建 # 若不存在创建密码设为123456便于测试 sudo useradd -m -s /bin/bash sma echo sma:123456 | sudo chpasswd然后以root执行sudo su - cd /home/sma/AFSIMSrc/dependencies chmod x myenv_temp.sh ./myenv_temp.sh脚本会输出[OK] GCC installed等信息。若卡在Installing Qt...检查/home/sma/AFSIMSrc/dependencies/tools/下是否有cmake-3.22.1-linux-x86_64目录——没有则tools.rar解压失败。2.4 验证环境五个关键命令确认基石已稳执行完myenv_temp.sh后不要急着cmake-gui先用这五个命令验证环境是否真就绪# 1. 确认gcc-4.8.5生效输出应为4.8.5 /home/sma/AFSIMSrc/dependencies/gcc-4.8.5/bin/g --version | head -1 # 2. 确认cmake指向正确版本输出3.22.1 cmake --version # 3. 确认Qt5CoreConfig.cmake存在路径必须精确 ls /home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/lib/cmake/Qt5Core/Qt5CoreConfig.cmake # 4. 确认LD_LIBRARY_PATH已加载应包含osgEarth路径 echo $LD_LIBRARY_PATH | grep osgEarth # 5. 测试Qt库能否被ldd解析无not found即成功 ldd /home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/lib/libQt5Core.so.5 | head -3若第3条ls报No such file说明qt-5.12.11-x64-lnx没解压对位置若第4条grep无输出source ~/.bashrc没生效需重新执行。3. CMake配置实战cmake-gui里三个必填变量与Cache重载的玄学时机AFSim2.9.0的CMakeLists.txt采用多级子项目结构afsim/CMakeLists.txt→afsim/src/CMakeLists.txt→afsim/src/graphics/CMakeLists.txtcmake-gui的configure阶段会逐层查找依赖。但作者打包的qt-5.12.11-x64-lnx等库不在标准路径必须手动指定CMAKE_PREFIX_PATH。更反直觉的是第一次configure失败是正常的必须reload cache后第二次configure才能成功——这是AFSim特有的“两阶段发现”机制。3.1 启动cmake-gui必须用sma用户且路径严格区分source与build文档说su sma但没强调必须用sma用户启动cmake-gui而非root。因为cmake-gui会读取sma用户的~/.bashrc从而获取AFSIM_HOME等环境变量。若用root启动$AFSIM_HOME为空configure直接失败。# 切换到sma用户非root su - sma # 进入afsim目录创建build子目录必须在此目录下启动cmake-gui cd /home/sma/AFSIMSrc/afsim mkdir build cd build # 启动cmake-gui注意不是cmake命令行 cmake-gui在GUI界面中Where is the source code:/home/sma/AFSIMSrc/afsim必须是afsim目录不是AFSIMSrcWhere to build the binaries:/home/sma/AFSIMSrc/afsim/build必须是刚建的build目录注意路径末尾不能有斜杠/home/sma/AFSIMSrc/afsim/会报错Source directory does not contain a CMakeLists.txt因为afsim/下才有CMakeLists.txtafsim//是无效路径。3.2 第一次configure接受红色报错只为触发Cache生成点击Configure选择Unix Makefiles工具链保持默认。首次configure必然失败出现大量红色NOT FOUNDCould NOT find Qt5Core (missing: Qt5Core_DIR) Could NOT find osg (missing: OSG_LIBRARY OSG_INCLUDE_DIR) Could NOT find osgEarth (missing: OSGEARTH_LIBRARY OSGEARTH_INCLUDE_DIR)这是预期行为因为AFSim的CMake脚本此时还没读取CMAKE_PREFIX_PATH它按默认路径搜索。但这次configure会生成CMakeCache.txt为下一步Reload Cache提供基础。不要点Cancel直接点OK接受红色状态。3.3 手动设置三个核心变量CMAKE_PREFIX_PATH是唯一钥匙点击File→Reload Cache此时界面刷新红色报错消失一半。现在手动填入三个关键变量在GUI空白处右键Add EntryVariable NameTypeValueCMAKE_PREFIX_PATHPATH/home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx;/home/sma/AFSIMSrc/dependencies/3rd_party/osg-3.6.3-x64-lnx;/home/sma/AFSIMSrc/dependencies/3rd_party/osgEarth-2.10.1-x64-lnxAFSIM_HOMESTRING/home/sma/AFSIMSrc/afsimAFSIM_3RDPARTY_PATHSTRING/home/sma/AFSIMSrc/dependencies/3rd_party逻辑说明CMAKE_PREFIX_PATH是CMake查找FindQt5.cmake等模块的根路径。AFSim的CMakeLists.txt里有find_package(Qt5 REQUIRED COMPONENTS Core Widgets)CMake会去$CMAKE_PREFIX_PATH/qt-5.12.11-x64-lnx/lib/cmake/Qt5Core/找Qt5CoreConfig.cmake。若只填Qt路径osgEarth仍找不到因为osgEarthConfig.cmake在osgEarth-2.10.1-x64-lnx/lib/cmake/osgEarth/所以必须用分号;连接所有路径。3.4 第二次configure与Generate成功标志是Configuring done且无红色填完三个变量后再次点击Configure。这次应看到-- Found Qt5Core: /home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/lib/cmake/Qt5Core/Qt5CoreConfig.cmake (found version 5.12.11) -- Found osg: /home/sma/AFSIMSrc/dependencies/3rd_party/osg-3.6.3-x64-lnx/lib64/libosg.so -- Found osgEarth: /home/sma/AFSIMSrc/dependencies/3rd_party/osgEarth-2.10.1-x64-lnx/lib64/libosgEarth.so -- Configuring done -- Generating done -- Build files have been written to: /home/sma/AFSIMSrc/afsim/build点击Generate生成Makefile。若提示Generating done说明CMake已成功解析所有37个依赖。此时/home/sma/AFSIMSrc/afsim/build/下应有Makefile和CMakeFiles/目录。4. 编译与安装make -j4的内存监控、install后的资源补丁与黑匣子排查make -j4是AFSim编译最耗时的环节也是最容易因内存不足或路径错误中断的阶段。make install看似简单但AFSim的安装逻辑有隐藏步骤它不会自动创建mil-std2525d目录而这是./wizard启动时强制检查的。此外make过程中若某模块失败CMake不会终止整个流程而是标记该目标为FAILED你需要主动检查日志。4.1 make -j4实时监控内存动态调整-j参数切换到root用户执行编译因make install需写入系统目录sudo su - cd /home/sma/AFSIMSrc/afsim/build # 启动内存监控新开终端 watch -n 1 free -h | grep Mem # 开始编译 make -j4观察free -h输出的available列若available 2G立即CtrlC中断改用make -j2若available稳定在4G可尝试make -j6加速需确认CPU核心数参数说明-j4表示并行4个job-j值建议设为CPU物理核心数lscpu | grep ^CPU(s):。我的i7-13700H有14核20线程但-j10会导致内存爆满故保守用-j4。4.2 编译失败的三类典型日志与定位方法当make报错时不要只看最后一行。AFSim的Makefile会继续编译其他目标需用以下命令定位真实失败点# 查找第一个FAILED通常是最先失败的模块 make -j4 21 | grep -A5 -B5 FAILED # 或查看完整日志推荐 make -j4 build.log 21 # 在log中搜索关键词 grep -n error: build.log | head -5常见失败类型及解决现象原因解决In file included from /home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/include/QtCore/qglobal.h:44:0/home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/include/QtCore/qconfig.h:1:0: fatal error: qconfig-large.h: No such file or directoryQt头文件路径错误qconfig-large.h实际在qt-5.12.11-x64-lnx/include/QtCore/但CMake误用了qt-5.12.11-x64-lnx/include/作为include root在cmake-gui中将Qt5_DIR变量值改为/home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/lib/cmake/Qt5重新configureundefined reference to GDALAllRegisterGDAL_2_2gdal-3.3.2库与AFSim源码ABI不匹配GDALAllRegister符号版本不对检查dependencies/3rd_party/gdal-3.3.2-x64-lnx/lib/下是否有libgdal.so.28正确版本若为libgdal.so.30则替换为作者提供的版本CMake Error at /home/sma/AFSIMSrc/afsim/cmake/FindosgEarth.cmake:45 (message):osgEarth not found. Please set OSGEARTH_ROOT_DIR.CMAKE_PREFIX_PATH未包含osgEarth-2.10.1-x64-lnx路径或路径拼写错误如osgEarth-2.10.1写成osgEarth2.10.1在cmake-gui中检查CMAKE_PREFIX_PATH值确认分号;分隔且路径末尾无斜杠4.3 make install四步操作缺一不可make install不是终点而是启动./wizard前的最后四步# 1. 执行install必须root sudo make install # 2. 创建mil-std2525d目录AFSim硬性要求否则wizard启动报错 sudo mkdir -p ${AFSIM_HOME}/build/wsf_install/resources/site/mil-std2525d # 3. 复制官方示例数据demos目录里的想定文件 sudo cp -r /home/sma/AFSIMSrc/demos/* ${AFSIM_HOME}/build/wsf_install/resources/site/ # 4. 设置可执行权限防止Permission denied sudo chmod x ${AFSIM_HOME}/build/wsf_install/bin/wizard注意${AFSIM_HOME}在root环境下未定义必须用绝对路径sudo mkdir -p /home/sma/AFSIMSrc/afsim/build/wsf_install/resources/site/mil-std2525d4.4 避坑常见问题与排查现象→原因→解决现象1make install后wsf_install/bin/下没有wizard文件原因make install未完成中途被CtrlC中断或CMAKE_INSTALL_PREFIX被错误修改默认是build/wsf_install若手动改过会失效解决删除build/目录重新cmake-gui→Configure→Generate→make -j4→make install全程不中断现象2./wizard启动报错QApplication: invalid style override passed, ignoring it随后闪退原因Qt5.12.11的platforms/libqxcb.so依赖libxcb-xinerama.so.0但Ubuntu 22.04默认不装libxcb-xinerama0解决sudo apt update sudo apt install libxcb-xinerama0 # 并确认LD_LIBRARY_PATH包含Qt的platforms路径 export LD_LIBRARY_PATH/home/sma/AFSIMSrc/dependencies/3rd_party/qt-5.12.11-x64-lnx/plugins/platforms:$LD_LIBRARY_PATH现象3./wizard界面显示但地图区域全黑控制台刷Error: Failed to create OpenGL context原因NVIDIA驱动未正确加载或libGL.so.1链接到Mesa而非NVIDIA解决# 检查驱动 nvidia-smi # 强制链接NVIDIA GL sudo ln -sf /usr/lib/nvidia-535/libGL.so.1 /usr/lib/x86_64-linux-gnu/libGL.so.1 # 重启X11或reboot现象4make -j4卡在[ 85%] Building CXX object src/graphics/CMakeFiles/afsim_graphics.dir/EarthView.cpp.o超10分钟原因EarthView.cpp极大10MBgcc-4.8.5编译此文件需3G内存系统内存不足触发OOM解决立即CtrlC改用make -j1单线程编译或关闭所有浏览器/IDE释放内存现象5cmake-gui中CMAKE_PREFIX_PATH填了但Found Qt5Core仍报NOT FOUND原因CMAKE_PREFIX_PATH值中路径顺序错误CMake优先匹配第一个路径若qt-5.12.11路径在osgEarth之后则FindQt5.cmake找不到解决在CMAKE_PREFIX_PATH中Qt路径必须排第一格式为/qt-path;/osg-path;/osgEarth-path5. 运行测试与进阶技巧从wizard启动到自定义想定加载的全流程验证./wizard成功启动只是第一步AFSim2.9.0的真正价值在于加载自定义想定scenario并运行仿真。但wizard的GUI界面有隐藏逻辑它默认从resources/site/读取想定而作者提供的demos/目录需手动复制过去。更关键的是想定XML文件里的路径必须用Linux风格正斜杠且所有资源3D模型、地形图必须放在resources/site/子目录下——这是新手加载想定失败的最高频原因。5.1 wizard启动验证三步确认核心功能正常进入安装目录以root启动wizardsudo su - cd /home/sma/AFSIMSrc/afsim/build/wsf_install/bin ./wizard成功启动后按顺序验证三项核心功能主界面渲染左上角应显示AFSim Wizard v2.9.0中央3D视窗有蓝色地球底图osgEarth加载成功标志菜单栏响应点击File→Open Scenario弹出文件选择框证明Qt Widgets正常控制台无致命错误启动时终端应无Segmentation fault或Aborted仅有Warning: Ignoring XDG_SESSION_TYPEwayland可忽略提示若3D视窗黑屏但菜单正常是OpenGL上下文问题见4.4现象3若菜单不响应是Qt插件路径未加入LD_LIBRARY_PATH。5.2 加载官方demos复制资源与路径映射的硬规则demos/目录包含basic_scenario.xml等想定文件但wizard默认不扫描此目录。必须将demos/内容复制到wsf_install/resources/site/# 复制所有demos到site目录 sudo cp -r /home/sma/AFSIMSrc/demos/* /home/sma/AFSIMSrc/afsim/build/wsf_install/resources/site/ # 确认结构 ls /home/sma/AFSIMSrc/afsim/build/wsf_install/resources/site/basic_scenario.xml此时在wizard中File→Open Scenario选择basic_scenario.xml。若报错Cannot open scenario file: basic_scenario.xml检查XML文件首行!-- 正确Linux路径 -- Scenario xmlnshttp://www.afsim.com/scenario baseDir./ !-- 错误Windows路径会失败 -- Scenario xmlnshttp://www.afsim.com/scenario baseDir.\\AFSim的XML解析器只认/不认\。5.3 自定义想定加载四要素缺一不可的校验清单要让自己的想定my_scenario.xml在wizard中运行必须满足四个条件要素要求验证命令1. XML语法格式严格遵循AFSim DTDEntity标签必须有id属性Platform必须有typexmllint --noout --dtdvalid /home/sma/AFSIMSrc/afsim/documentation/dtd/scenario.dtd my_scenario.xml2. 资源路径所有Model、Terrain路径相对于resources/site/如models/f16.fbxgrep Model|Terrain my_scenario.xml | grep -v models/应无输出3. 文件存在models/f16.fbx等文件必须在resources/site/models/下ls resources/site/models/f16.fbx4. 权限resources/site/及其子目录需755文件需644sudo chmod -R 755 resources/site/ sudo chmod -R 644 resources/site/*5.4 进阶技巧用命令行快速验证想定语法与依赖避免每次都在wizardGUI里试错用AFSim内置的scenariotool做离线验证位于tools/目录# 进入tools目录作者提供 cd /home/sma/AFSIMSrc/dependencies/tools/ # 验证XML语法无需启动GUI ./scenariotool -validate /home/sma/AFSIMSrc/afsim/build/wsf_install/resources/site/basic_scenario.xml # 输出Scenario validation passed. # 检查想定依赖的资源文件是否存在 ./scenariotool -list-resources /home/sma/AFSIMSrc/afsim/build/wsf_install/resources/site/basic_scenario.xml # 输出models/f16.fbx, terrains/earth.tif, ... # 对照输出检查文件是否存在血泪经验scenariotool比wizard报错更精准。曾有个想定因Terrain路径写成terrains/earth.tiff多了一个twizard只报Failed to load terrain而scenariotool -list-resources直接指出File not found: terrains/earth.tiff。5.5 性能调优RTX3060显卡的CUDA加速开关AFSim2.9.0默认启用CUDA加速地形渲染但需手动开启。在wizard中Settings→Graphics→ 勾选Enable CUDA AccelerationSettings→Performance→ 将Terrain LOD调至High若开启后卡顿检查CUDA驱动# 确认nvidia-cuda-toolkit已装 nvcc --version # 强制AFSim使用CUDA export CUDA_VISIBLE_DEVICES0 ./wizard从那以后我每次新建想定都强制走一遍scenariotool -validate和-list-resources再复制到resources/site/绝不直接双击XML。因为AFSim的错误反馈太模糊——wizard里一个Failed to load entity可能源于XML语法错、路径错、文件权限错、甚至磁盘空间不足。而scenariotool能在3秒内定位到具体哪一行、哪个文件缺失。希望帮到你。本文还有配套的精品资源点击获取