2501_94268684 2026-01-05 12:41 采纳率: 0%
浏览 5

这是什么问题,1公里的仿真打不开,一打开就崩溃

这是console显示

libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
libpng warning: iCCP: known incorrect sRGB profile
Exception code=0xc0000005 flags=0x0 at 0x00007FFC843D4865. Access violation - attempting to read data at address 0x0000000000000000

Simulation terminated with exit code: c0000005
Working directory: D:/omnetpp-6.0.3/omnetpp-6.0.3/samples/veins/examples/veins
Command line: ../../../../bin/opp_run.exe -m -n .;../../src/veins --image-path=../../images -l ../../src/veins omnetpp.ini

Environment variables:
PATH=;D:/omnetpp-6.0.3/omnetpp-6.0.3/samples/veins/src;D:\omnetpp-6.0.3\omnetpp-6.0.3\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\opt\mingw64\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\mingw64\bin;;D:/omnetpp-6.0.3/omnetpp-6.0.3/ide//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.stripped.win32.x86_64_17.0.10.v20240120-1143/jre/bin/server;D:/omnetpp-6.0.3/omnetpp-6.0.3/ide//plugins/org.eclipse.justj.openjdk.hotspot.jre.full.stripped.win32.x86_64_17.0.10.v20240120-1143/jre/bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\opt\mingw64\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\mingw64\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\local\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\bin;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\bin;C:\Windows\System32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\bin\site_perl;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\bin\vendor_perl;D:\omnetpp-6.0.3\omnetpp-6.0.3\tools\win32.x86_64\usr\bin\core_perl;D:\omnetpp-6.0.3\omnetpp-6.0.3;
OMNETPP_RELEASE=omnetpp-6.0.3
OMNETPP_IMAGE_PATH=D:\omnetpp-6.0.3\omnetpp-6.0.3\images
  • 写回答

3条回答 默认 最新

  • 檀越@新空间 2026-01-05 13:22
    关注

    下午好🌅🌅🌅
    本答案参考通义千问

    你遇到的问题是一个 仿真崩溃 问题,具体表现为打开1公里的仿真时程序 直接崩溃(Access violation),并伴随一系列 libpng 的警告信息。以下是对该问题的详细分析和解决方案。


    一、问题分析

    1. 错误代码说明

    Exception code=0xc0000005 flags=0x0 at 0x00007FFC843D4865. Access violation - attempting to read data at address 0x0000000000000000
    
    • 0xc0000005 是 Windows 中的 访问冲突异常(Access Violation)
    • 表示程序尝试读取一个无效地址(0x0000000000000000),通常是由于指针未正确初始化或指向了空值。

    2. libpng 警告信息

    libpng warning: iCCP: known incorrect sRGB profile
    
    • 这些是 PNG 图像加载过程中的警告,通常不会导致程序崩溃。
    • 但它们可能表明图像文件存在格式问题,或者在某些情况下影响程序运行稳定性。

    3. 工作目录与命令行参数

    • 工作目录为:D:/omnetpp-6.0.3/omnetpp-6.0.3/samples/veins/examples/veins
    • 命令行参数中包含:
      ../../../../bin/opp_run.exe -m -n .;../../src/veins --image-path=../../images -l ../../src/veins omnetpp.ini
      

    二、可能的原因

    1. 图像文件损坏或路径错误

    • --image-path=../../images 指向的是 images 目录。
    • 如果该目录下的图像文件有损坏,特别是 .png 文件,可能导致程序在加载图像时崩溃。
    • 例如:如果某个图像文件被损坏,或者缺少关键的图像资源,会导致程序读取失败。

    2. 内存不足或资源加载失败

    • 程序在加载图像或其他资源时,可能因为内存不足或资源无法加载而出现访问冲突。
    • 特别是在处理大仿真场景(如“1公里”)时,资源需求更高。

    3. OMNeT++ 或 VEINS 的版本兼容性问题

    • OMNeT++ 6.0.3 和 VEINS 的某些版本可能存在兼容性问题,尤其是在图形渲染或资源加载方面。

    三、解决方案

    步骤 1:检查图像文件是否完整

    • 打开 D:\omnetpp-6.0.3\omnetpp-6.0.3\images 目录。
    • 检查是否有缺失或损坏的图像文件(尤其是 .png 文件)。
    • 可以尝试用图像编辑软件(如 Photoshop、GIMP)重新保存这些图像文件,或使用工具修复 PNG 文件。

    步骤 2:修改图像路径或使用默认图像

    • 如果你不确定图像文件是否正确,可以尝试将图像路径设置为默认位置,或替换为简单图片测试。
    • 修改 omnetpp.ini 中的 --image-path 参数为:
    # 修改前
    --image-path=../../images
    
    # 修改后(可选)
    --image-path=D:\omnetpp-6.0.3\omnetpp-6.0.3\images
    

    或者直接删除 --image-path 参数,让程序使用默认图像。


    步骤 3:更新 OMNeT++ 和 VEINS

    • 确保你使用的是最新版本的 OMNeT++ 和 VEINS。
    • 有些旧版本可能对某些图像格式或资源加载支持不完善。
    • 你可以从 OMNeT++ 官网VEINS GitHub 下载最新版本。

    步骤 4:调试仿真配置

    • omnetpp.ini 中,尝试简化仿真配置,比如减少节点数量或降低地图复杂度。
    • 例如,在 omnetpp.ini 中修改如下内容:
    [Config *]
    network = VeinsExample
    numNodes = 10  # 尝试减少节点数
    

    步骤 5:启用调试日志

    • omnetpp.ini 中添加以下内容以开启更详细的日志输出:
    [General]
    log-level = debug
    
    • 运行仿真后,查看日志文件(如 omnetpp.log)是否有其他错误信息。

    步骤 6:使用替代图像文件

    如果你怀疑是图像文件的问题,可以尝试用简单的 PNG 图像替换原图。

    示例:替换图像文件

    1. 准备一个简单的 PNG 图像(如 test.png)。
    2. 将其放入 images 目录。
    3. omnetpp.ini 中指定该图像:
    --image-path=D:\omnetpp-6.0.3\omnetpp-6.0.3\images
    

    四、总结

    | 问题原因 | 解决方案 | |----------|----------| | 图像文件损坏或缺失 | 检查并修复或替换图像文件 | | 图像路径错误 | 修改 --image-path 参数或使用默认图像 | | OMNeT++/VEINS 版本过旧 | 升级到最新版本 | | 内存或资源加载失败 | 简化仿真配置或增加系统资源 | | 配置错误或日志不足 | 启用调试日志进行排查 |


    五、推荐修改后的 omnetpp.ini 示例(简化版)

    [General]
    name = VeinsExample
    config = VeinsExample
    sim-time-limit = 10s
    log-level = debug
    
    [Config VeinsExample]
    network = VeinsExample
    numNodes = 10
    --image-path=D:\omnetpp-6.0.3\omnetpp-6.0.3\images
    

    如果你仍然无法解决,建议提供完整的 omnetpp.iniveins 的配置信息,我可以进一步帮你定位问题。

    评论

报告相同问题?

问题事件

  • 创建了问题 1月5日