#c #ns-3 #codelite
Вопрос:
Я довольно новичок в разработке на C , и я хотел использовать IDE. Я скачал codelite, и все работало нормально.
Проблема В том, что недавно я начал разрабатывать приложение для NetworkSimulator3 или Ns3, которое работает с Waf(https://waf.io/). Использование codelite только для моего приложения и выполнение сборки и запуска на терминале с помощью waf кажется неправильным.
В конце концов, codelite не распознает кучу файлов ns3 и продолжает указывать на ошибки.
Что я пытался сделать
- Я попытался добавить все файлы Ns3 в одну рабочую область вместе с файлами моего приложения в надежде, что все будет работать. Вместо этого я все еще получаю кучу ошибок «Нет такого файла или каталога», хотя эти файлы существуют и добавляются в IDE
При импорте Ns3 требует, чтобы мы называли его так: #импорт <ns3/packet.h>, Хотя .h находится в другой папке: src/сеть/модель/пакет.h
Есть несколько файлов wscripts, которые, вероятно, работают с этими привязками, хотя я не уверен на 100%.
Поэтому я тоже попытался:
- Добавление .h в той же папке моего приложения
- Создание новой виртуальной папки под названием ns3 и добавление туда заголовков
- Включая папку с заголовками в пути включения компилятора
- Включая папку с заголовками в компоновщике, как будто это была библиотека
До сих пор ничего не работало
Я просто хотел открыть 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 (возможно, изменился с тех пор, как я в последний раз проверял).