Omnet++导入Artery模块报错:找不到artery.envmod.World类型
Artery项目未完成编译:OMNeT++依赖被引用项目编译生成的NED索引文件(如
nedfragments.xml)识别导入类型。如果Artery项目未编译、编译失败或最近修改后未重新编译,你的项目无法找到对应NED类型。右键Artery项目选择Build Project重新编译,查看Build视图确认编译状态。NED路径配置遗漏:检查Artery项目的
OMNeT++→NED Path设置,确认包含artery.envmod所在的目录;同时在你的项目的NED Path设置中,勾选Add referenced projects' NED paths,确保继承引用项目的NED搜索路径。导入语句命名空间/模块名错误:核对Artery项目中
World模块的实际命名空间——找到对应NED文件,查看顶部的package声明,确认是否和你写的artery.envmod一致,同时检查模块名拼写(比如是否是小写world)。依赖链不完整:若Artery项目本身依赖其他子项目(如inet、veins),你的项目未间接引用这些依赖会导致NED解析失败。查看Artery项目的引用列表,将这些必要依赖添加到你的项目引用中,或在OMNeT++偏好设置的
Project References里确认依赖链完整。工作区索引缓存异常:OMNeT++的NED索引可能出现缓存问题。右键工作区选择
Refresh刷新;或关闭所有项目,删除工作区.metadata/.plugins/org.eclipse.core.resources/.projects/[你的项目名]/.indexes目录,重新打开项目并编译。版本不兼容:你使用的Artery版本与当前OMNeT++版本不匹配,或Artery版本迭代中
envmod模块被重构到其他位置。查看Artery对应版本的源码结构或文档,确认World模块的实际位置。
内容的提问来源于stack exchange,提问作者bluemelov

