Невозможно добавить несколько каталогов .ned при запуске omnet++ из собственной оболочки

Я хочу запустить свою симуляцию, не открывая IDE. Я проверил руководство и выполнил шаги, но я застрял.
Я использую omnetpp v5.6.2. Я запускаю mingwenv.cmd в каталоге, где находится мой *.ini, и набираю это:

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

Я получил это взамен:

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

и это:

Невозможно добавить несколько каталогов .ned при запуске omnet++ из собственной оболочки

Поэтому я также добавил свой каталог src

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

На этот раз я заставляю считать все нужные файлы, но все равно не работает:

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

Невозможно добавить несколько каталогов .ned при запуске omnet++ из собственной оболочки

В отличие от ошибки, на самом деле существует класс AFDX::ConnDef и когда я запускаю симуляцию с помощью IDE, она работает нормально.

Я также добавляю структуру каталогов моего проекта, возможно, это поможет.

|>AFDX
__|>источник
____|>библиотека очереди
______| *.нед
______| *.cc
______| *.ч
____| *.нед
____| *.cc
____| *.ч
____| Материал ConnDef здесь
__|>симуляции
____|>Результаты
____|AFDX.exe
____|AutoNetwork.ini
____|AutoNetwork.ned
____|Макетфайл
__|Макетфайл

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
0
28
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот вопрос содержит 2 проблемы. Первое было правильно решено вами. Второй (afdx::ConnDef не найден). Не имеет абсолютно никакого отношения к названию этого вопроса или к файлам NED в целом. Класс ConnDef либо отсутствует в коде C++, либо вы забыли добавить макрос Define_Module, либо вы поместили этот класс в глобальное пространство имен вместо того, чтобы включить его в пространство имен afdx.

Вы предлагаете получать разные результаты при работе из IDE или командной строки. Это может быть только в том случае, если вы запускаете разные исполняемые файлы.

Проверка дерева каталогов показывает, что у вас есть Makefile и файл AFDX.exe в папке simulations, поэтому эта папка обозначена как исходная папка, однако в ней НЕТ исходных файлов. С другой стороны, папка src также является исходная папка, и, хотя вы не указали, я полагаю, что в ней также есть Makefile и снова EXE-файл, а тот — это исполняемый файл, который содержит код вашей модели и класс afdx::ConnDef (и IDE также запускает этот исполняемый файл). С другой стороны, вы запускаете EXE-файл из папки simulations, которая представляет собой пустой EXE-файл без какого-либо кода...

НЕ используйте две исходные папки в проекте одновременно, если вы действительно не понимаете, что делаете. Просто уберите обозначение источника из папки simulations и удалите туда exe и Makefile.

Используйте EXE в папке src, чтобы запустить симулятор из командной строки. то есть вы бы сделали что-то вроде

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

Я понимаю логику, но я могу успешно запустить эту симуляцию из IDE, ничего не меняя в Conndef. В чем разница, когда не используется IDE?

İpek 08.04.2022 10:36

Действительно, запуск из IDE или командной строки должен дать точно такие же результаты. Это говорит мне о том, что вы не используете один и тот же исполняемый файл, и поэтому поведение отличается. Смотрите мое редактирование ответа.

Rudi 08.04.2022 14:26

О, и, кстати, если бы вы использовали OMNeT++ 5.7, эта версия выводит командную строку, которую она использует, на консоли IDE, поэтому вы можете скопировать/вставить фактическую команду в консоль.

Rudi 08.04.2022 14:38

Хорошо, я удаляю обозначение источника и перемещаю AutoNetwork.ned в src. В дополнение к этому мне пришлось добавить пакет в файл ned и обновить файл ini в соответствии с этим. Но теперь это работает. Спасибо!

İpek 08.04.2022 22:42

Другие вопросы по теме