2024年3月14日发(作者:)
OPNET常见错误
编撰者 北京邮电大学 吕召彪
lvzhb_2001@
仅学术交流,勿商业用途;如需转载,请勿肢解
初学OPNET,个人觉得要注重三个方面:
1,OPNET的网络仿真机制,包括三层建模、离散事件驱动仿真机制、通信机制、
有限状态机等,主要是看帮助文档中的原理部分;
2,OPNET的核心函数,多看帮助文档中各核心函数的介绍以及示例很有帮助;
3,掌握ODB的调试,个人感觉OPNET的调试不难,关键是要善于从OPNET的仿真
原理入手来找可能的错误所在,我的经验就是按着数据走的流程来分析。
另外,有时间的话,可以找一个OPNET提供的标准模块代码来看看,有利于理
清通信的流程和掌握写代码的一些常用技巧。
说明:
1,下面材料主要来自自己平时遇到错误以及网上论坛的帖子,本人无意侵犯他人
版权。
2,由于是平时的笔记,因此其中不乏错误和错字,也显随意潦草,大家见笑!
1,unresolved externals symbol:
错误消息如下:
err log——
<<< Program Abort >>>
* Time: 21:15:50 D??úè? áù?? 02
* Product: modeler
* Program: op_runsim (Version 10.0.A PL1 Build 2291)
* System: Windows NT 5.0 Build 2195
* Package: Simulation Kernel
* Function: sim_load_repos_load
* Error: Error encountered rebuilding repository -- unable to proceed
* Function call stack: (builds down)
------------------------------------------------------------------------
Call Block
Count Line# Function
------------------------------------------------------------------------
0) 1 1073741928 0x00004c00 [name not available]
1) 1 1879048703 0x00004c00 [name not available]
2) 1 -805306207 0x0000c400 [name not available]
3) 1 284 m3_main
4) 1 857 sim_main
5) 1 975 sim_init_phase2
6) 1 278 sim_load_models
7) 1 1269 sim_load_repos_load
------------------------------------------------------------------------
编译是通过的,仿真时——
Creating library E:LuZhaobiao1??????àímy papersOBSí???·????£Dí
delay_test-delay_ and object E:LuZhaobiao1??????àímy
papersOBSí???·????£Dídelay_test-delay_
dpt_ : error LNK2001: unresolved external symbol _link_delay
E:LuZhaobiao1??????àímy papersOBSí???·????£Dí
delay_test-delay_ : fatal error LNK1120: 1 unresolved
externals
网友们分析的各种原因:
1),由函数调用栈可见,在主函数运行前就已报错,这和运行仿真时反馈的错误一致(建立
repository在开始仿真之前进行),所以无法使用ODB进行调试。从编译时的提示信息来看,
应该是没有找到模型中引用的link_delay。解决的方法就是在FILE/Declare external
将link-delay文件包括进来。『采用这个方法解决了以上问题』
但是可以利用ODB下编译发现是编译哪个模型或外部文件时报错,确定错误范围。


发布评论