跳转到内容

基于策略的弹性仿真器与 OMNeT++/构建 OMNeT++

来自 Wikibooks,开放的书籍,为一个开放的世界

注意:在继续之前,请查看官方的安装指南。将它放在一个标签页中,因为在构建过程中将参考该指南。您可以在这里获取最新的 OMNeT++。如果您正在尝试设置基于策略的弹性仿真器,则必须使用 OMNeT++ 4.1,它可以从这里下载。

注意:从现在开始,您家目录中的 omnetpp-4.x 文件夹将被称为“omnetpp 文件夹”。

构建 OMNeT++

[编辑 | 编辑源代码]

解压缩您刚刚下载的 .tar.gz 文件

要构建 OMNeT++ 4.1/4.2/4.2.2,您需要进行以下编辑

对于 OMNeT++ 4.1 和 4.2(.2),在解压缩 OMNeT++ .tar.gz 包之后,打开位于 omnetpp 文件夹中的 src/utils 目录下的 abspath.cc 文件,并在文件开头添加以下行

#include <unistd.h>

如果您已经运行过配置脚本并遇到了错误,请删除您家目录中的 omnetpp 文件夹,再次解压缩它,进行更改。

现在,安装安装指南中提到的所需依赖项(特定于发行版)。然后打开终端并运行

注意:在这里,将“<版本号>”替换为您要构建的版本。

cd omnetpp-<version number>
./configure

在结束时,配置脚本将显示一些类似于以下内容的警告

WARNING: your PATH doesn't contain /home/jesse/omnetpp-4.1/bin!
Add the following line to your .profile or .bash_profile (provided you use bash):
export PATH=$PATH:/home/jesse/omnetpp-4.1/bin

WARNING: The TCL_LIBRARY environment variable is not set, and without it Tkenv (the GUI runtime environment) may be unable to find the BLT library.
Add the following line to your .profile or .bash_profile (provided you use bash):
export TCL_LIBRARY=/usr/share/tcltk/tcl8.5

为此,打开

.profile

文件(位于家目录中,它将被隐藏 - 点击 View>Show Hidden FilesCtrl+H 查看它)并使用您喜欢的文本编辑器,将这些行复制粘贴到文件末尾。添加的行将如下所示

export TCL_LIBRARY=/usr/share/tcltk/tcl8.5
export PATH=$PATH:/home/<username>/omnetpp-4.1/bin

之后,关闭并重新打开终端运行

source .profile

导航回到 omnetpp 目录,并运行

./configure

再次。现在我们已经准备好编译 OMNeT++。运行

make

编译大约需要 10-20 分钟,完成后,您可以通过输入以下命令启动 OMNeT++

omnetpp

您的仿真器 IDE 现在应该启动了。

测试您的构建

[编辑 | 编辑源代码]

在 OMNeT++ IDE 中,在首次运行时,您可能会被要求“选择一个工作区”,只需使用默认的工作区即可。首先,您将看到一个欢迎标签,您可以关闭/最小化它以获取完整的 IDE。

您可以通过运行一个示例来测试您的安装是否成功。右键单击任何一个示例,例如 dyna,点击“打开项目”,现在点击工具栏中绿色播放按钮旁边的向下箭头,点击运行方式 > OMNeT++ 仿真。

现在应该弹出一个窗口,如果您点击弹出的 tkenv 窗口中的“运行”按钮,仿真就会运行。

故障排除

[编辑 | 编辑源代码]

在运行示例时,如果没有发生任何事情,而是 OMNeT++ 显示了类似于以下内容的错误

<!> Error during startup: No user interface (Cmdenv, Tkenv, etc.) found.

在控制台选项卡中,此错误会提供一些帮助。这个错误是在 OMNeT++ 4.1 的 Xubuntu (13.04, 12.10) 和 Linux Mint 14 中发现的。

确保在安装必要的依赖项后,在重新编译之前关闭 IDE。如果这不能解决您的问题,或者在遇到其他困难时,您可以尝试在OMNeT++ 邮件列表中寻求帮助。

如果您是 OMNeT++ 新手,请点击此链接了解如何使用 OMNeT++ 的基本操作。您可以在这里学习一些技巧和窍门

您现在可以继续编译 INET。

基础 · 编译 INET

华夏公益教科书