OMNeT++命令行

使用opp_makemake和Makefiles:

有几个工具可用于管理C/ c++程序的构建。omnet++使用传统的方式,生成文件。编写Makefile通常是一项乏味的任务。然而,omnet++提供了一个可以为用户生成Makefile的工具,从而节省了手工劳动。

opp_makemake可以基于当前目录和(可选的)子目录中的源文件,自动为仿真程序生成Makefile。

强制覆盖现有的Makefile

-f, --force

要构建的仿真可执行文件或库的名称

-o <filename>

指定目录外构建的输出目录树的名称

-O <directory>, --out <directory> 

生成一个“深度”的Makefile。深度Makefile将覆盖make目录下的整个源代码树,而不仅仅是该目录下的文件

--deep

使make递归地下降到所有子目录;子目录本身应该包含makefile

-r, --recurse

带-r或–deep:忽略给定的目录

-X <directory>, -X<directory>, --except <directory>

导致make切换到给定目录并调用该目录中的Makefile

-d<subdir>, -d <subdir>, --subdir <subdir> 

生成目标文件,但不创建可执行文件或库

-n,--nolink

构建共享库。.so, .dll或.dylib

-s,--make-so-s,--make-so

创建静态库。.a或.lib

-a,--make-lib

将给定的目录添加到c++包含路径中

-I<dir>

在c++编译器中定义给定的符号

-D<name>[=<value>], -D <name>[=v<alue>], --define <name>[=<value>]

将给定目录添加到库路径中

-L<dir>

要链接的附加库

-l<library>

查看完整列表

opp_makmakake -h

指定项目根目录。任何指向项目子树的绝对路径(-I, -L,目标文件名等)都将被转换为相对路径,以便于在不同的目录中编译项目。默认为包含".project”文件

-P directory, --projectdir directory

选择构建模式,“debug”或“release”。默认为“debug”。通过指定“MODE=debug”或“MODE=release”作为额外参数,仍然可以在make命令行上覆盖此设置

-M mode, --mode mode

定义一个makefile变量,即使name=value插入到makefile中

-Kname=value, -K name=value, --makefile-define name=value

编译在dll中使用的c++文件;参见-p选项。i -s(构建共享库)选项暗示了这个。

-S, --fordll

链接在-I目录中找到的所有目标文件,或者将它们添加到创建的库中。淘汰。

-w, --withobjects

将文件追加到Makefile的末尾。makefrag.vc文件(如果存在)被自动添加如果没有给定-i选项的话。如果要从其他文件生成源文件(.ned、.msg或.cc),则此选项非常有用。

-i filename, --includefragment filename

基本运用

假设源文件(*.ned, *.msg, *.cc, *.h)位于单个目录中,可以切换到该目录并输入:

$ opp_makemake

这将创建一个名为Makefile的文件。现在,运行make程序将构建一个仿真可执行文件

$ make

生成的Makefile将包含源文件的名称,因此每次向项目添加新文件或从项目中删除新文件时,都需要重新运行opp_makemake。

要重新生成现有的Makefile,请在命令行中添加-f选项,否则opp_makefake将拒绝覆盖它。

$ opp_makemake -f -o aloha

生成的Makefile支持以下目标:
•all:构建仿真;这也是默认目标。
•clean:删除make进程生成的文件。

Debug和Release构建

opp_makemake生成一个Makefile,它可以创建发布版本和调试版本。默认情况下,它创建发布版本,但是很容易通过在make命令行上定义MODE变量来覆盖此行为

$ make MODE=debug

也可以生成默认为调试构建的Makefile。这可以通过向opp_makemake命令行添加–mode选项来实现。

$ opp_makemake --mode debug

opp_makemake生成一个Makefile,该Makefile在构建过程中只打印最少的信息(只打印编译文件的名称)。要查看Makefile执行的完整编译器命令,请在make命令行中添加V=1参数。

$ make V=1

运行仿真

仿真可以编译为可执行文件或共享库。当构建输出是可执行文件时,可以直接运行它。例如,Fifo示例仿真可以用以下命令运行:

$ ./fifo

编译成共享库的仿真可以使用opp_run程序运行。例如,如果我们将Fifo模拟编译为Linux上的共享库,则构建输出将是libfifo。这个文件可以用下面的命令运行:

$ opp_run -l fifo

-l选项告诉opp_run加载给定的共享库。

用Qtenv构建的仿真程序接受以下命令行选项:

程序打印帮助信息并退出。

-h

使程序以Qtenv开始。(这是默认设置,除非程序没有与Qtenv链接,或者具有比Qtenv优先级更高的另一个自定义环境库。)

-u Qtenv

配置文件的名称。默认值是omnetpp.ini。可给出多个-f开关;这允许您对配置文件进行分区。例如,一个文件可以包含您的常规设置,另一个文件可以包含大多数模块参数,第三个文件可以包含您经常更改的模块参数。-f开关为可选参数,可以省略。

-f filename

加载共享库。Unix上是. so文件,Windows上是.dll文件,Mac OS X上是.dylib文件)。共享库可能包含简单模块和其他任意代码。文件名可以在没有文件扩展名和库名前缀的情况下指定(即foo而不是libfoo.so)。

-l filename

当出现时,覆盖NEDPATH环境变量并设置仿真NED文件的源位置。

-n filepath

选择一个INI配置执行。

-c configname

它与qtenv-default-run= INI文件配置选项具有相同的效果(但优先级高)。运行过滤器也是可以接受的。如果有多个匹配运行,则将它们分组到组合框的顶部。

-r runnumber
OMNeT++是一个基于模块的事件驱动模拟器。从Omnet的安装目录中,可以找到examples目录,这里有许多示例,这些示例展示了如何使用OMNeT++来模拟各种场景。 OMNeT++的目录结构如下所示: omnetpp-5.6.2 - bin - include - lib - samples - src - tools - Makefile.inc 在OMNeT++的samples目录中,我们选一个最简单的例子:helloworld,让我们来看一下如何在OMNeT++中创建makefile文件。 helloworld是最简单的OMNeT++模拟器,它不需要extern包或库文件,因此我们可以通过makefile.inc文件来完成模拟器的编译。 makefile.inc文件位于OMNeT++安装文件夹的根目录中。该文件定义了用于构建OMNeT++应用程序的默认编译器、编译选项和链接选项。 我们需要创建一个名为“Makefile”的文件。如下所示: NEDPATH = /path/to/helloworld INCLUDE_PATH = $(OMNETPP_INCLUDE_PATH) LDLIBS = $(OMNETPP_LIBS) define PROJECT_VARS # 你可以添加你自己的变量 endef export PROJECT_VARS MDEFINES = -DWITH_GUI include $(OMNETPP)/tools/config/gcc-debug .PHONY: all clean cleanall help TARGET = $(MIXIM_LIB_PREFIX)mypacket$(MIXIM_LIB_SUFFIX) SRC_FILES := $(wildcard *.cc) OBJ_FILES := $(patsubst %.cc,%.o,$(SRC_FILES)) all: $(TARGET) $(TARGET): $(OBJ_FILES) $(AR) $(ARFLAGS) $@ $^ clean: rm -f $(OBJ_FILES) rm -f $(TARGET) cleanall: clean help: $(info make help clean cleanall) 现在保存Makefile并返回到终端中。 执行“make”命令即可编译helloworld应用程序。 以上就是关于在OMNeT++中创建Makefile文件的简单教程。OMNeT++支持自定义Makefile文件创建,开发人员可以根据实际需要添加不同的编译、链接选项,实现对模拟器的个性化设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值