opnet 安装过程中仿真出错问题

更新时间:2024-05-01 14:51:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

OPNET 安装完成之后,需要测试环境变量设置是否正确,一般是通过对opnet自带对的示例仿真,但有可能出现如问题1所述的情况: 问题1:

<<< Recoverable Error >>> |

Process model (aodv_rte) compilation failed |

Errors given in file (C:\\Users\\Administrator\\op_admin\\tmp\\cc_err_5640)

这可能是由于两个方面的原因:

1、使用的可能是标准库,也可能是empty,这时候如果示例中会用到标准库中的一些东西,就会报错,可以通过设置得到:在project编辑器下,edit->preference,打开后搜索repositories,设置Network Simulation Repositories的value值为stdmod,即标准模型,此时在运行仿真,则会变得正确,如果这样设置后还有错误,说明应该是环境变量设置有问题。如图1所示。

图1

2、使用自己建立的模型进行仿真时,如果出现如图2所示的问题: 问题2:

<<< Program Abort >>>The set of models necessary for running the simulation is incomplete.Check that all the 'repositories' attributes are complete.T (0), EV (-), MOD (NONE), PROC (sim_load_repos_load)

图2

这是因为我们用的模型库已经不是标准的模型库了,我们是自己创建的模型库,所以需要修改设置:就是将问题1设置的Network Simulation Repository值stdmod删除,变回empty,如图3所示。

图3

这样仿真就会正确了。

即使repository设置正确,有可能还会出现其它问题,以下几个是我遇到的:

问题3:

fatal error C1074: 'IDB' is illegal extension for PDB file(fatal error C1074: “IDB”是 PDB 文件的非法扩展)

这个问题主要是有兼容性问题造成的,我的系统时win7 32旗舰版,opnet14.5a以及vs2010,打开opnet和vs程序的属性,在兼容性里设置如图4、如图5所示。

图4

图5

问题4:

Errors reported by the binder program follow (these messages have been saved in (C:\\Users\\Answer\\op_admin\\tmp\\bind_err_8944):

LINK : fatal error LNK1181: cannot open input file 'kernel32.lib' 或者

LINK : fatal error LNK1181: cannot open input file 'windef.h'

这个问题主要是有环境变量设置中没有把一些库函数包含进去,有两个可能,第一,环境变量自己设置路径有误,如果检查无误之后,有可能就是因为有些文件opnet包含的时候是小写开头的文件,而不同的vs版本的这些文件可能时大写开头的,解决方法就是在vs安装报下搜索无法打开的文件,如果该文件所在的路径没被包含进去,则包含其路径,如果文件名称存在大小写的问题,将文件中的名称改掉,如:Kernel.lib改为kernel.lib。

问题5:

<<< Recoverable Error >>>

Object repository construction failed

due to errors encountered by the binder program (bind_so_msvc) T (0), EV (-), MOD (NONE), PROC (sim_load_repos_rebuild)

从网上找了这个问题的一些资料,有一个人是这样说的:

出现这个错误一般是编译连接出错unresolved external symbol,常见的有以下可能性:

(1)Pipeline Stage (C code)文件名与函数名不一样,这时改为同名就行了。 (2)进程模型用到一个无法定位的外部函数,这时在进程模型编辑器中选择 File->Declare External Files…,然后选中含有该外部函数的外部文件。

(3)外部文件用到一个无法定位的函数,这时查看是否漏掉include 需要用到的头文件。

这个问题如果是伴随着问题4的问题,那么问题4解决了之后,它也就消失了就如第三点说的一样,至于是不是无法定位一个外部函数,这个得开自己的进程模型中有没有用到这个外部函数了,用到的话肯定需要声明呐!至于第一条的情况,我还没那么幸运遇到,无能为力。

问题6:

Errors reported by the binder program follow (these messages have been saved in (C:\\Users\\Answer\\op_admin\\tmp\\bind_err_5000):Creating library

E:\\study\\bachelor\\opnet\\op_models\\event_list\\event_list_example-scenario1.dev32.i0.nt.lib and object

E:\\study\\bachelor\\opnet\\op_models\\event_list\\event_list_example-scenario1.dev32.i0.nt.exp

LINK : fatal error LNK1207: incompatible PDB format in

'E:\\study\\bachelor\\opnet\\op_models\\event_list\\event_list_example-scenario1.dev32.i0.nt.pdb'; delete and rebuild

这句话的意思是重新生成项目,即删除所有编译期间生成的临时文件,重新编译生成一次,那就将它指定的那个文件找到,重新打开编译一遍就好了。

下面附一些网友们总结的其他问题(我自己没有遇到过,不能检测其正确与否):

问题1:

fatal error LNK1101: MSPDB100.DLL 的版本不正确;请再次检查此产品的安装 解决:因为VC\\Bin\\下没有“msobj100.dll,mspdb100.dll,mspdbcore.dll,mspdbsrv.exe”这四个文件,解决的方法:直接从Common7\\IDE\\下复制这四个文件到VC\\Bin\\下即可解决。

问题2:Invalid Memory Access

内存无效访问是调试程序中最常碰到的错误,一般是程序中的指针出了问题,可以尝试用以下办法来解决:

(1)在edit->preference 中给comp_flags 加/Od /Zi 字段,给bind_shobj_flags 加/DEBUG 字段;

(2)在edit->preference 中找到handle_exception,将TRUE 改为FALSE,这样程序中的异常就可以由VC 来调试;

(3)运行仿真,如提示出现异常,点击cancel,则自动打开VC,并且debug 会停留在发生异常的指针处。但是有时候VC 的debug 有可能停留在让人看不懂的汇编语言处,此时可以观察发生错误的事件event_id 值,在ODB 调试的时候使用evstop 指令设置断点,让程序中断在出错的事件前,接下来可以采取下列两种方法之一:

(1)采用OPNET 与VC 联合调试,在VC 中通过单步执行查看;

(2)用ODB 的next 指令一个一个时间看,往往配合ltrace 和fulltrace 指令查看程序运行状况。碰到这个问题我们也可以缩短仿真时间,在确保仿真能够完成前提下,在仿真属性中选择Advanced->Profiling->Collect detailed profiling for function,之后出现每一个内存使用的统计。

问题3:

No true transitions from state ()

T(), EV(), MOD(), PROC (sim_pro_err_transit)

状态程序执行完毕找不到出口,有限状态机要能够正常运行要求在任意条件下,每个

状态执行完毕之后都必须发生转移,出错的情况有以下两种: a)根本没有转移条件及相应的状态。 b)没有满足条件的转移。

问题4:

Unable to write file (*.pr.m) compilation failed Source code file couldn't be generated

查看模型文件属性是否设置为只读,编译模型文件需要刷新其内容,去掉只读属性。

问题5:

<<>> Standard function stack imbalance FIN 和FOUT/FRET未配对。

本文来源:https://www.bwwdw.com/article/60eg.html

Top