前言

我们安装OMNET,参考file:///D:/omnetpp-5.4.1-src-windows/omnetpp-5.4.1/doc/InstallGuide.pdf的官方文档,其支持的平台很多,例如window、Ubuntu 、Linux以及红帽等系统,这篇博文以window为例,简单说明其中注意事项和原理。

1. 注意事项

  • OMNET5.0以后的版本,仅支持64位window,版本为win7和win10。
  • 安装路径不要出现空格和特殊符号
  • 安装时尽量关闭杀毒和防护软件

2. 安装方法

OMNET提供了很多功能宏,如果你不需要其中一些功能,可以通过配置 configure.user 关掉这些功能。初学者的话,建议直接用默认的配置文件就可以了。
第一步:打开 mingwenv.cmd

$ ./configure
$ make

2.1 ./configure

这个命令,主要是来配置编译前的基本环境和编译器。主要包括

  • mingw32
  • 轻量编译器clang/clang
  • C/C++ compiler
  • 交叉编译器
  • make/qmake
  • Qt5相关配置
  • 安装路径合法性
    如果没有什么问题的话,会看到相关的打印:
Your PATH contains /d/omnetpp-5.4.1-src-windows/omnetpp-5.4.1/bin. Good!

2.2 make

make命令主要作用是编译,分为两部分:

  • 软件本身底层框架及环境
  • 软件本身自带的一些例子

    出现以下打印即结束:
Now you can type "omnetpp" to start the IDE

2.3环境变量

如果想在shell之外启动OMNeT++模拟,则需要将OMNeT++的bin、tools/win64/usr/bin和tools/win64/mingw64/bin目录添加到路径中。
在设置环境变量设置对话框中,选择路径或列表中的路径,单击“编辑”。将“;\bin”和其他需要的目录附加到值,其中是OMNeT++根目录的名称(例如C:\omnetpp-5.4.1),按回车键保存。

3.卸载和单编译

如果我们想要重新安装或者卸载,输入一下命令即可:

$ ./configure
$ make clean
$ make

如果您只想重新编译单个库,请切换到库的目录(例如cd src/sim)并键入:

$ make clean
$ make

在代码中使用多重继承时,MinGW/Clang 3.8会生成不正确的代码。因此,现在不建议使用MinGW/clang。

4.内核原理

OMNeT++主要由六个部分组成:仿真内核库(simulation kernel library,简称Sim),网络描述语言的编译器(network description compiler, nedc),图形化的网络编辑器(graphical network description editor,GNED),仿真程序的图形化用户接口-Tkenv/Qtenv,仿真程序的命令行用户接口-Cmdenv,图形化的输出工具-Plove和Scalar。 Sim是仿真内核和类库,用户编写的仿真程序要同Sim连接,Sim在OMNeT++中占据最为核心重要的地位。
(1).网络描述(NED)语言
NED是模块化的网络描述语言。网络描述包括大量的对组件的描述,如通道,简单和复合模块的类型。
(2).用户接口
OMNeT++的用户接口用于实现仿真程序的人机交互,OMNeT++允许模型内部机制对用户可视化,也允许用户启动和终止仿真,并更改模型内部的变量。OMNeT++中的图形化接口是一个用户工具,可方便用户了解模型内部的运行机制。

  • (1)执行模型和Sim:仿真内核管理将来的事件,当有事件发生时,仿真内核就调用执行模型中的模块。执行模型的模块存储在Sim的main对象中。执行模型依次调用仿真内核的函数并使用Sim库中的类。
  • (2)Sim和模型组件库:当仿真开始运行创建了仿真模型的时候,仿真内核就实例化简单模块和其它的组件。当创建动态模块时,仿真内核也要引用组件库。实现在模型组件库中注册和查寻组件也是Sim的功能。
  • (3)执行模型和Envir:ev对象作为Envir的一部分,是面向执行模型的用户接口。仿真模型使用ev对象来记录调试信息。
  • (4)Sim和Envir:由Envir决定创建何种模型,Envir包含主要的仿真循环,并调用仿真内核以实现必须的功能。Envir捕捉并处理执行过程中发生在仿真内核和或类库中的错误和异常。
  • (5)Envir和Tkenv,Cmdenv:Envir定义了表示用户接口的TOmnetApp基类,Tkenv和Cmdenv都是TOmnetApp的派生类。main()函数是Envir的一部分,为仿真决定选用合适的用户接口类,创建用户接口类的实例并执行。Sim和模型对ev对象的调用通过实例化TOmnetApp类进行。Envir通过TOmnetApp和其它类的方法实现Tkenv和Cmdenv的框架和基本功能。

加入讨论

【OMNET++】OMNET安装卸载说明以及原理探讨相关推荐

  1. 手机管理应用研究【2】—— 安装卸载篇

    欢迎转载,转载请注明:http://blog.csdn.net/zhgxhuaa 说明 Android通过PackageManagerService(后面简称Pms)进行包管理,其主要功能包括:用户I ...

  2. Android 9 P静默安装/卸载App适配终极指南

          Android 9 (P)静默安装/卸载App适配终极指南 Android 9 (P)开发适配指南系列博客目录: Adnroid 9 (P) recovery升级Map of '@/cac ...

  3. Linq的底层原理探讨

    前言 有一篇文章ABP-引入SqlSugar很多人都在催促我,出下一章因为工作忙一直没写.现在开第二节课Linq的底层原理探讨.一起探讨完,看看有没有引起SqlSugar的新思路. 这文章叫linq的 ...

  4. Windows Mobile手机软件安装卸载方法

    Windows Mobile手机软件安装卸载方法 智能手机功能强大,最重要的一方面就是它们可以反复的安装软件游戏以及主题等.以下罗列了智能手机上常见的几种格式软件的安装以及卸载方法. 软件.游戏的安装 ...

  5. cmd指令卸载java_.net 服务 安装 卸载 命令行 bat cmd

    基于.net 4.0 安装 @ECHO OFF echo 准备安装服务 pause REM The following directory is for .NET 4.0 set DOTNETFX2= ...

  6. 关于 top、left 结合 translate 实现居中的原理探讨

    关于 top.left 结合 translate 实现居中的原理探讨 前情提要 在居中对齐的方法中常用的一种方法之一,就是使用绝对定位结合 translate.top.left实现居中,探讨原理之前先 ...

  7. Linux系统Vi/Vim编辑器的简单介绍、安装/卸载、常用命令

    Linux系统Vi/Vim编辑器的简单介绍.安装/卸载.常用命令 1.介绍 vi(Visual Interface)编辑器是Linux和Unix上最基本的文本编辑器,工作在字符模式下.由于不需要图形界 ...

  8. C++程序安装卸载WDM驱动

    编译环境:VS2012 + WIN8 64 测试环境:VM WIN7 测试对象:WDM驱动 (sys文件 和 inf文件) 项目类型:Win32 Console Application 其它说明:代码 ...

  9. linux软件安装卸载命令行

    国内较快开源软件镜象站点,包括Debian.Ubuntu.Fedora.Gentoo.Centos.FreeBSD.Eclipse等开源软件的镜象 http://mirrors.163.com,htt ...

最新文章

  1. 基于matlab的lsb数字水印
  2. php系统构建,增加知识: 如何使用PHPstudy为后端系统构建PHP源网站
  3. LUA: lua基础.
  4. 选择安防交换机时需要避免哪些误区呢?
  5. 计算机网络学习笔记-目录(更新日期:2020.4.8)
  6. map、set和unordered_map、unordered_set对比
  7. 将控制台输出重定向到textbox的dotnet类
  8. LINUX上开发ffmpeg程序,查看链接的库
  9. docker打包informix镜像
  10. 数据结构学习——浅谈哈希表开散列和闭散列
  11. ASPack 2.12
  12. 优化jsj脚本,防止浏览器卡死
  13. 汇总 | 嵌入式软硬件领域各种“黑科技”
  14. 【FPGA的基础快速入门31-----环境光传感器】
  15. Scrapy crawl 爬虫运行出错解决方法
  16. url rewrite 实现url地址的伪静态化
  17. Mysql5.6 Performance_schema 深入浅出
  18. 维乐VELO副总陈安荣:宽容对待美学,会让生活更幸福
  19. 最终幻想java中文版_【个人翻译系列】java版FF2(最终幻想二代)英文剧情(第九期)...
  20. 【深入kotlin】 - 与Java互操作:java调用kotlin

热门文章

  1. Gatling:HTTP Checks
  2. scilab系列---概述
  3. ESB+MDM预置样例测试总结
  4. SpringMVC(8)——格式化转换器Formatter
  5. Git中smart Checkout与force checkout
  6. “'react-scripts' 不是内部或外部命令,也不是可运行的程序或批处理文件。”解决方法
  7. Windows 10下配置高通hexagon sdk环境
  8. 既生synchronized,何生volatile (synchronized与volatile的区别)
  9. 云测试中QA团队的作用
  10. 打算翻译机器学习工具包--SHOGUN使用文档