You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用OMNeT++时INET与OSG链接错误问题求助

解决OMNeT++嵌套项目编译时OSG未定义引用错误

问题说明

你遇到的osg::AutoTransform::setNormal(osg::Vec3f const&)这类未定义引用错误,是因为nesting或INET项目默认启用了OSG(OpenSceneGraph,OMNeT++的3D可视化依赖),但你的环境中OSG依赖未正确配置,或者你不需要3D可视化功能。

解决步骤

方法一:直接禁用OSG编译选项

  1. 打开OMNeT++ IDE,右键选中nesting项目,选择Properties
  2. 左侧菜单进入OMNeT++ | Makemake,选中项目根目录对应的makemake文件(通常是src目录项)
  3. 点击Options,切换到Compiler标签页
  4. 在Preprocessor definitions中添加:
    WITH_OSG=0
    
    若INET项目也触发该问题,对INET项目执行同样操作
  5. 保存设置后,先执行Project > Clean,再重新编译项目

方法二:安装OSG依赖(如需3D可视化)

如果需要保留3D功能,在Ubuntu20.04终端执行以下命令安装依赖:

sudo apt-get install libopenscenegraph-dev libopenscenegraph161

安装完成后,进入OMNeT++安装目录运行./configure重新配置环境,再编译INET和nesting项目

方法三:手动修改Makefile

若IDE设置不生效,直接修改项目的Makefile,在CPPFLAGS中添加禁用OSG的宏定义:

CPPFLAGS += -DWITH_OSG=0

然后执行make clean && make重新编译


内容的提问来源于stack exchange,提问作者Zeh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 22:07:02