Codelite не распознает файлы ns-3

Я новичок в разработке на C++ и хотел использовать IDE. Я скачал codelite, все заработало.

Проблема Недавно я начал разработку приложения для NetworkSimulator3 или Ns3, которое работает с Waf(https://waf.io/). Использование codelite только для моего приложения и выполнение сборки и запуска на терминале с помощью waf кажется неправильным.

В конце концов, codelite не распознает кучу файлов ns3 и продолжает указывать на ошибки.

Что я пытался сделать

  1. Я попытался добавить все файлы Ns3 в одну рабочую область вместе с файлами моего приложения в надежде, что все будет работать. Вместо этого я по-прежнему получаю кучу ошибок «Нет таких файлов или каталогов», хотя эти файлы существуют и добавляются в IDE.

При импорте Ns3 требует, чтобы мы называли его так: #import ‹ns3/packet.h› Хотя .h находится в другой папке: src/network/model/packet.h

Есть несколько файлов wscripts, которые, вероятно, работают с этими привязками, хотя я не уверен на 100%.

Итак, я также пробовал:

  1. Добавление .h в ту же папку моего приложения
  2. Создание новой виртуальной папки с именем ns3 и добавление туда заголовков
  3. Включение папки с заголовками во включаемые пути компилятора
  4. Включение папки с заголовками в компоновщик, как будто это библиотека

Пока ничего не получилось

Я просто хотел открыть Ns3 в среде IDE, чтобы работать без появления нескольких ошибок. Может быть, даже с некоторым автозаполнением?

Не могли бы вы, ребята, помочь мне разобраться в этом?

Редактировать Я также добавил пользовательскую сборку, поэтому я могу выполнять и собирать свой проект с помощью waf, но ошибки IDE не исчезли.


person EduardoMaia    schedule 23.05.2021    source источник


Ответы (1)


При импорте Ns3 требует, чтобы мы называли его так: #import ‹ns3/packet.h› Хотя .h находится в другой папке: src/network/model/packet.h

Заголовки, импортированные с помощью ‹ns3/header.h›, копируются из src/module/(model/helper) в build/ns3 при сборке ns-3. Вам нужно добавить build/ в качестве включаемой папки (например, -I/path/to/ns-3-dev/build), что заставит ‹ns3/header.h› работать правильно.

По другим вопросам не уверен, так как никогда не пробовал CodeLite.

Я просто хотел открыть Ns3 в среде IDE, чтобы работать без появления нескольких ошибок. Может быть, даже с некоторым автозаполнением?

Если я могу порекомендовать, попробуйте систему сборки CMake. Клонируйте код и создайте папку кэша cmake (например, mkdir cmake_cache), затем создайте проект CodeLite (например, cd cmake_cache && cmake -DCMAKE_EXPORT_COMPILE_COMMANDS=1 -G "CodeLite - Ninja" .. или -G "CodeLite - Unix Makefiles"), а затем откройте проект в cmake_cache с помощью CodeLite. :)

Обновление: просто прочитайте в их блоге, что экспорт команд компиляции требуется для завершения кода при использовании cmake. https://codeliteide.blogspot.com/2014/02/codelite-ide-60-cmake-and-clang-code.html

person Gabriel    schedule 25.05.2021
comment
Спасибо за ответ. Я попробую ваше предложение в ближайшее время и вернусь к вам. - person EduardoMaia; 26.05.2021
comment
./waf автоматически генерирует compile_commands.json при строительстве и помещает его в ./build/. - person Sagar; 28.05.2021
comment
Привет @Сагар. Я видел этот файл. В нем указано несколько команд для создания каждого файла. Что мне делать с этой информацией? - person EduardoMaia; 29.05.2021
comment
@EduardoMaia Я не использую CodeLite, но некоторые IDE (например, CLion) требуют, чтобы compile_commands.json использовал различные функции кодирования, такие как завершение кода, статический анализ и т. д. CLion поддерживает только CMake (возможно, что-то изменилось с тех пор, как я последний раз проверял). - person Sagar; 29.05.2021