Omnet++ 在omnet+中运行仿真+;使用独立文件

Omnet++ 在omnet+中运行仿真+;使用独立文件,omnet++,Omnet++,我想在没有omnet++的机器上运行模拟。我有什么办法可以做到吗? 是否有可能以自给自足的方式构建我的项目 OMNET项目需要opp_运行文件(OMNET-x.x/bin/opp_运行)。基本上,opp_run允许启动作为共享库链接的仿真模型。您可以使用 opp_run -r 0 -u Cmdenv -c yourConfigName -n . -l yourProgram params.ini -r <runnumber> allows you to select runs -u

我想在没有omnet++的机器上运行模拟。我有什么办法可以做到吗?
是否有可能以自给自足的方式构建我的项目

OMNET项目需要opp_运行文件(OMNET-x.x/bin/opp_运行)。基本上,opp_run允许启动作为共享库链接的仿真模型。您可以使用

opp_run -r 0 -u Cmdenv -c yourConfigName -n . -l yourProgram params.ini

-r <runnumber> allows you to select runs
-u Cmdenv tells omnetpp to run under Cmdenv (command-line environment)
-c <configname> option is used to select a configuration
-n option is used to specify the NED path
-l option is used to load additional shared libraries
opp_run-r 0-u Cmdenv-c yourConfigName-n-l您的程序参数为
-r允许您选择跑步
-u Cmdenv告诉omnetpp在Cmdenv(命令行环境)下运行
-c选项用于选择配置
-n选项用于指定NED路径
-l选项用于加载其他共享库
opp_run需要许多共享库才能正常运行。在Linux中,您可以使用
ldd
列出opp_运行所需的所有共享库。例如,在我的Ubuntu 14计算机上:

如您所见,opp_run需要许多共享库,您需要将它们全部安装在目标机器上


我还在Linux服务器(Ubuntu14服务器)上运行OMNET模拟。但是我已经在我的主文件夹上安装了OMNET(不需要sudo访问),并且可以使用上面的命令运行模拟(假设您已经安装了所有必需的库)。检查OMNET安装以检查系统上需要哪些软件包。

OMNET项目需要opp_运行文件(OMNET-x.x/bin/opp_运行)。基本上,opp_run允许启动作为共享库链接的仿真模型。您可以使用

opp_run -r 0 -u Cmdenv -c yourConfigName -n . -l yourProgram params.ini

-r <runnumber> allows you to select runs
-u Cmdenv tells omnetpp to run under Cmdenv (command-line environment)
-c <configname> option is used to select a configuration
-n option is used to specify the NED path
-l option is used to load additional shared libraries
opp_run-r 0-u Cmdenv-c yourConfigName-n-l您的程序参数为
-r允许您选择跑步
-u Cmdenv告诉omnetpp在Cmdenv(命令行环境)下运行
-c选项用于选择配置
-n选项用于指定NED路径
-l选项用于加载其他共享库
opp_run需要许多共享库才能正常运行。在Linux中,您可以使用
ldd
列出opp_运行所需的所有共享库。例如,在我的Ubuntu 14计算机上:

如您所见,opp_run需要许多共享库,您需要将它们全部安装在目标机器上


我还在Linux服务器(Ubuntu14服务器)上运行OMNET模拟。但是我已经在我的主文件夹上安装了OMNET(不需要sudo访问),并且可以使用上面的命令运行模拟(假设您已经安装了所有必需的库)。检查OMNET安装以检查系统上需要哪些软件包。

通过使用静态库选项编译
OMNET++
可以避免依赖本机
OMNET++
库(例如
liboppenird.so
liboppsimd.so
等)。为此,从主
OMNeT++
目录中打开
configure.user
,并设置:
SHARED\u LIBS=no

然后重建OMNeT++(
make clean
/configure
make
)。下一步重建您的项目。
tictoc
示例:

cd samples/tictoc
opp_makemake -f --deep
make clean && make
然后
ldd tictoc
将显示:

user@ubuntu:/opt/omnetpp-4.6/samples/tictoc$ ldd tictoc
    linux-vdso.so.1 =>  (0x00007ffe4e1f6000)
    libtk8.6.so => /usr/lib/x86_64-linux-gnu/libtk8.6.so (0x00007fcf868d7000)
    libtcl8.6.so => /usr/lib/x86_64-linux-gnu/libtcl8.6.so (0x00007fcf8653a000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fcf8631f000)
    libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fcf85f56000)
    libmpi_cxx.so.1 => /usr/lib/libmpi_cxx.so.1 (0x00007fcf85d3a000)
    libmpi.so.1 => /usr/lib/libmpi.so.1 (0x00007fcf859b1000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcf857ad000)
    libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007fcf85568000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcf85259000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcf84f51000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcf84d3b000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcf84b1d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcf84753000)
    libXft.so.2 => /usr/lib/x86_64-linux-gnu/libXft.so.2 (0x00007fcf8453e000)
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fcf84300000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fcf83fc7000)
    libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007fcf83dc3000)
    libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007fcf83a45000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fcf83842000)
    libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fcf83638000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fcf86c2b000)
    libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007fcf8342d000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fcf83185000)
    libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fcf82f7b000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fcf82d52000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fcf82b33000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fcf82921000)
    libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007fcf810b4000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fcf80e8e000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fcf80c8a000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fcf80a84000)
此外,如果不需要图形界面,则可以仅为命令行模式构建项目。它减少了依赖项的数量。为此,请使用以下命令:
opp\u makemake-f--deep-u Cmdenv

(或者使用
OMNeT++
中的项目属性进行设置)
重建
tictoc
后,与X11库没有依赖关系:

user@ubuntu:/opt/omnetpp-4.6/samples/tictoc$ ldd tictoc
    linux-vdso.so.1 =>  (0x00007ffd82197000)
    libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f452e838000)
    libmpi_cxx.so.1 => /usr/lib/libmpi_cxx.so.1 (0x00007f452e61c000)
    libmpi.so.1 => /usr/lib/libmpi.so.1 (0x00007f452e293000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f452e08f000)
    libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007f452de4a000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f452db3b000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f452d833000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f452d61d000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f452d3ff000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f452d035000)
    libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007f452ccb7000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f452ca9c000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f452c899000)
    libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f452c68f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f452ec01000)
    libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007f452c484000)
    libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007f452ac17000)

通过使用静态库选项编译
OMNeT++
,您可以避免对本机
OMNeT++
库(例如
liboppenvird.so
liboppsimd.so
等)的依赖。为此,从主
OMNeT++
目录中打开
configure.user
,并设置:
SHARED\u LIBS=no

然后重建OMNeT++(
make clean
/configure
make
)。下一步重建您的项目。
tictoc
示例:

cd samples/tictoc
opp_makemake -f --deep
make clean && make
然后
ldd tictoc
将显示:

user@ubuntu:/opt/omnetpp-4.6/samples/tictoc$ ldd tictoc
    linux-vdso.so.1 =>  (0x00007ffe4e1f6000)
    libtk8.6.so => /usr/lib/x86_64-linux-gnu/libtk8.6.so (0x00007fcf868d7000)
    libtcl8.6.so => /usr/lib/x86_64-linux-gnu/libtcl8.6.so (0x00007fcf8653a000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fcf8631f000)
    libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007fcf85f56000)
    libmpi_cxx.so.1 => /usr/lib/libmpi_cxx.so.1 (0x00007fcf85d3a000)
    libmpi.so.1 => /usr/lib/libmpi.so.1 (0x00007fcf859b1000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fcf857ad000)
    libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007fcf85568000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fcf85259000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fcf84f51000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fcf84d3b000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fcf84b1d000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fcf84753000)
    libXft.so.2 => /usr/lib/x86_64-linux-gnu/libXft.so.2 (0x00007fcf8453e000)
    libfontconfig.so.1 => /usr/lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007fcf84300000)
    libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fcf83fc7000)
    libXss.so.1 => /usr/lib/x86_64-linux-gnu/libXss.so.1 (0x00007fcf83dc3000)
    libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007fcf83a45000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007fcf83842000)
    libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007fcf83638000)
    /lib64/ld-linux-x86-64.so.2 (0x00007fcf86c2b000)
    libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007fcf8342d000)
    libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fcf83185000)
    libXrender.so.1 => /usr/lib/x86_64-linux-gnu/libXrender.so.1 (0x00007fcf82f7b000)
    libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007fcf82d52000)
    libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fcf82b33000)
    libXext.so.6 => /usr/lib/x86_64-linux-gnu/libXext.so.6 (0x00007fcf82921000)
    libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007fcf810b4000)
    libpng12.so.0 => /lib/x86_64-linux-gnu/libpng12.so.0 (0x00007fcf80e8e000)
    libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fcf80c8a000)
    libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fcf80a84000)
此外,如果不需要图形界面,则可以仅为命令行模式构建项目。它减少了依赖项的数量。为此,请使用以下命令:
opp\u makemake-f--deep-u Cmdenv

(或者使用
OMNeT++
中的项目属性进行设置)
重建
tictoc
后,与X11库没有依赖关系:

user@ubuntu:/opt/omnetpp-4.6/samples/tictoc$ ldd tictoc
    linux-vdso.so.1 =>  (0x00007ffd82197000)
    libxml2.so.2 => /usr/lib/x86_64-linux-gnu/libxml2.so.2 (0x00007f452e838000)
    libmpi_cxx.so.1 => /usr/lib/libmpi_cxx.so.1 (0x00007f452e61c000)
    libmpi.so.1 => /usr/lib/libmpi.so.1 (0x00007f452e293000)
    libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f452e08f000)
    libhwloc.so.5 => /usr/lib/x86_64-linux-gnu/libhwloc.so.5 (0x00007f452de4a000)
    libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f452db3b000)
    libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f452d833000)
    libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f452d61d000)
    libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007f452d3ff000)
    libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f452d035000)
    libicuuc.so.52 => /usr/lib/x86_64-linux-gnu/libicuuc.so.52 (0x00007f452ccb7000)
    libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007f452ca9c000)
    libutil.so.1 => /lib/x86_64-linux-gnu/libutil.so.1 (0x00007f452c899000)
    libltdl.so.7 => /usr/lib/x86_64-linux-gnu/libltdl.so.7 (0x00007f452c68f000)
    /lib64/ld-linux-x86-64.so.2 (0x00007f452ec01000)
    libnuma.so.1 => /usr/lib/x86_64-linux-gnu/libnuma.so.1 (0x00007f452c484000)
    libicudata.so.52 => /usr/lib/x86_64-linux-gnu/libicudata.so.52 (0x00007f452ac17000)

你想使用哪个操作系统-Windows、Linux或Mac?我想在Linux服务器上运行模拟。Stack Overflow是一个关于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心中的。您想使用哪个操作系统-Windows、Linux或Mac?我想在Linux服务器上运行模拟。Stack Overflow是一个用于编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。