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下编译发现是编译哪个模型或外部文件时报错,确定错误范围。