Omnet++迁移Windows 10的Makefile问题及兼容版本咨询
1. 多版本OMNeT++冲突问题
只要不将多个版本的bin目录同时添加到系统全局PATH环境变量,就不会产生冲突。OMNeT各版本自带独立的编译链环境,每次使用对应版本自带的mingwenv.cmd启动命令行,或直接打开对应版本的IDE快捷方式,只会加载当前版本的环境变量,不会互相干扰。如果全局PATH内加入了多个版本的OMNeT路径,系统调用make、opp_msgc等工具时会优先匹配路径排序靠前的版本,会出现编译链混乱的问题。
2. Windows 10下稳定兼容的版本组合
以下为经过实测的稳定组合,禁止使用OMNeT++预览版本(如6.0pre13),预览版本存在大量未修复兼容性bug:
- 组合1:OMNeT++ 5.6.2 + Veins 5.1 + INET 4.2.5(适配绝大多数 Veins + INET 联合仿真教程,稳定性最高)
- 组合2:OMNeT++ 5.7 + Veins 5.2 + INET 4.3.2(Veins 5.2 起最低要求INET 4.3版本)
- 组合3:OMNeT++ 6.0.1(正式版) + Veins 5.3 + INET 4.4.1(适配OMNeT++ 6.x分支的最新稳定组合)
3. Makefile报错排查方向
- 依赖与模式匹配检查:打开项目属性的
Project References页,确认已勾选对应版本的Veins、INET项目;同时保证Veins、INET、自定义项目三者的编译模式完全一致(均为Release或均为Debug),你遇到的找不到release目录下.o文件的问题,大概率是Veins/INET编译时用了Debug模式,而自定义项目用了Release模式,可通过右键项目->Build Configurations->Set Active统一模式。 - 重构Makefile:不要只执行
make clean,先右键项目选择Clean,再删除项目根目录下的*.oppbuildspec、*.mk文件,之后右键项目选择Build Project,强制重新生成Makefile文件。 - Qtenv加载异常修复:OMNeT++ 5.6.2 自带的Qt库与部分Windows显卡驱动存在兼容性问题,无需重新编译OMNeT++,只需右键OMNeT++快捷方式->属性,在目标路径末尾添加
--no-opengl参数,禁用OpenGL加速即可解决加载失败问题。
内容的提问来源于stack exchange,提问作者eugene
相关产品推荐
相关产品推荐

