当 运行 omnet++ 从它自己的 shell 时无法添加多个 .ned 目录

Cannot add multiple .ned directory when running omnet++ from its own shell

我想 运行 我的模拟而不打开 IDE。我查看了手册并按照步骤操作,但我被卡住了。
我正在使用 omnetpp v5.6.2。我在我的 *.ini 所在的目录中 运行 mingwenv.cmd 并键入:

AFDX.exe -f C:/Workspaces/Github/AFDX/Simulations/AutoNetwork.ini -n C:/Workspaces/Github/AFDX/simulations

我在 return 中得到了这个:

OMNeT++ Discrete Event Simulation  (C) 1992-2019 Andras Varga, OpenSim Ltd.
Version: 5.6.2, build: 200518-aa79d0918f, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer

Setting up Qtenv...

Loading NED files from C:/Workspaces/Github/AFDX/simulations:  1

Loading images from 'bitmaps': *: 0
Loading images from 'images': *: 0
Loading images from 'C:/omnetpp-5.6.2/images': *: 0  abstract/*: 90  background/*: 4  block/*: 320  device/*: 195  logo/*: 1  maps/*: 9  misc/*: 70  msg/*: 55  old/*: 111  status/*: 28

还有这个:

所以我也添加了我的 src 目录

AFDX.exe -f C:/Workspaces/Github/AFDX/Simulations/AutoNetwork.ini -n "C:/Workspaces/Github/AFDX/simulations;C:/Workspaces/Github/AFDX/src"

这次我让它计算所有的 ned 文件,但还是不行:

OMNeT++ Discrete Event Simulation  (C) 1992-2019 Andras Varga, OpenSim Ltd.
Version: 5.6.2, build: 200518-aa79d0918f, edition: Academic Public License -- NOT FOR COMMERCIAL USE
See the license for distribution terms and warranty disclaimer

Setting up Qtenv...

Loading NED files from C:/Workspaces/Github/AFDX/simulations:  1
Loading NED files from C:/Workspaces/Github/AFDX/src:  38

Loading images from 'bitmaps': *: 0
Loading images from 'images': *: 0
Loading images from 'C:/omnetpp-5.6.2/images': *: 0  abstract/*: 90  background/*: 4  block/*: 320  device/*: 195  logo/*: 1  maps/*: 9  misc/*: 70  msg/*: 55  old/*: 111  status/*: 28

与错误相反,实际上有一个AFDX::ConnDef class和当我运行使用IDE进行模拟时,它工作正常。

我也在添加我的项目目录结构,也许它会有所帮助。

|>AFDX
__|>源
____|>queueinglib
______| *.ned
______| *.cc
______| *.h
____| *.ned
____| *.cc
____| *.h
____| ConnDef 东西在这里
__|>模拟
____|>结果
____|AFDX.exe
____|AutoNetwork.ini
____|AutoNetwork.ned
____|生成文件
__|生成文件

本题包含2道题。第一个被你妥善解决了。第二个(afdx::ConnDef 未找到)。与这个问题的标题或一般的 NED 文件绝对无关。 C++ 代码中缺少 ConnDef class,或者您忘记添加 Define_Module 宏,或者您将 class 放入全局命名空间而不是将其包含在afdx 命名空间。

您建议您从 IDE 或命令行得到不同的结果 运行ning。这只能是你们实际上 运行 个不同的可执行文件。

检查目录树显示 Makefile 和 'AFDX.exe' 文件位于 simulations 文件夹中,因此该文件夹被指定为 源文件夹,但是它里面没有任何源文件。另一方面,src 文件夹也是一个 源文件夹 ,虽然你没有指出,但我相信它也有一个 Makefile 和一个 EXE 文件, that 是包含您的模型代码和 afdx::ConnDef class 的可执行文件(并且 IDE 也启动该可执行文件)。另一方面,您从 simulations 文件夹启动 EXE 文件,这是一个没有任何代码的空 exe...

不要在一个项目中同时使用两个源文件夹,除非你真的在做你正在做的事情。只需从 simulations 文件夹中删除源代码并删除其中的 exe 和 Makefile。

使用 src 文件夹中的 EXE 从 command-line 启动 sim。即你会做类似

的事情
cd simulations
../src/AFDX.exe -n ".;../src" AutoNetwork.ini