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

#c #ns-3 #codelite

Вопрос:

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

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

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

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

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

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

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

Поэтому я тоже попытался:

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

До сих пор ничего не работало

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

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

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

Ответ №1:

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

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

Не уверен в других вопросах, так как я никогда не пробовал CodeLite.

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

Если я могу порекомендовать, попробуйте систему сборки CMake. Клонируйте код и создайте папку кэша cmake (например mkdir cmake_cache ), затем создайте проект CodeLite (например cd cmake_cache amp;amp; 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

Комментарии:

1. Спасибо за ответ. Я скоро попробую ваше предложение и свяжусь с вами.

2. ./waf автоматически генерирует compile_commands.json при построении и помещает его в ./build/ .

3. Привет @Sagar. Я видел этот файл. В нем указано несколько команд для создания каждого файла. Что я должен делать с этой информацией?

4. @EduardoMaia Я не использую CodeLite, но некоторые IDE (например. CLion) требует, чтобы compile_commands.json использовал различные функции кодирования, такие как завершение кода, статический анализ и т.д. CLion поддерживает только CMake (возможно, изменился с тех пор, как я в последний раз проверял).