Как использовать NetworKit в качестве библиотеки в OMNeT++?

Я пытаюсь создать ядро ​​​​С++ для NetworKit, и я хотел бы использовать его в качестве библиотеки в OMNeT++. Я следовал инструкциям из файла README, чтобы создать код с помощью cmake и make all. Затем я попытался выполнить инструкции из раздела Используйте NetworKit в качестве библиотеки, но представленные там примеры не согласуются с исходным кодом. В частности, каталог NetworKit/graph не содержит файла Graph.h. Есть файл Graph.hpp, но в другом каталоге. Также отсутствует файл LibDemo.cpp. Файл README устарел или я что-то упустил?

РЕДАКТИРОВАТЬ
Это дополнение к моему посту выше. Судя по всему, файл README устарел. В любом случае я создал C++ ядро ​​NetworKit. Я включил библиотеку в свое приложение OMNeT++ следующим образом: #include <graph/Graph.hpp>
В OMNeT++, в моем проекте Properties | OMNeT++ | Makemake, а затем выбрав src | Options | Custom, я добавил следующее:

INCLUDE_PATH += -I/path/to/networkit/include/networkit
LIBS += -L/path/to/networkit/build_lib -lnetworkit

Когда я создаю свой проект OMNeT++, я получаю следующую ошибку:

/path/to/networkit/include/networkit/graph/../Globals.hpp:42:14: error: expected unqualified-id 
const double PI = 2.0*std::acos(0);
             ^
/path/to/omnetpp-5.4.1/include/omnetpp/simkerneldefs.h:47:19: note: expanded from macro 'PI'
#define PI        3.141592653589793
                  ^

Кто-нибудь может мне с этим помочь? Заранее спасибо!

Поставьте #undef PI перед const double PI. В качестве альтернативы закомментируйте один из них (вероятно, const double).

user10316011 28.05.2019 18:23

И, пожалуйста, не добавляйте несколько несвязанных вопросов в вопрос, создайте новый. (как должен выглядеть приемлемый ответ? Должен ли каждый отвечать на все части?)

user10316011 28.05.2019 18:24

Второй вариант (комментирование строки) вызывает ошибки компиляции в NetworKit. Первый работает нормально, я могу собрать как NetworKit, так и свой проект OMNeT++. Однако при запуске приложения я получаю эту ошибку: <!> Error: Cannot load library '../../src//libhetvnet.so': libnetworkit.so: cannot open shared object file: No such file or directory . Есть идеи, почему?

Ion Turcanu 28.05.2019 19:16

Я решил эту проблему, скопировав libnetworkit.so в тот же каталог моего файла omnetpp.ini. Я признаю, что это может быть не самое элегантное решение, но оно сработало для меня.

Ion Turcanu 29.05.2019 12:01
Стоит ли изучать 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
4
121
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

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

Вы правы, документация устарела, LibDemo.cpp было удалено здесь: https://github.com/kit-parco/networkit/commit/a5b2c1f0c9336e783c8fb0cd956326d960451914

Если вам нужна более старая версия, в которой эта часть документа все еще действительна, это будет версия 4.2, которая является последней версией с этим файлом. Кто-то почему-то сделал клон этой версии здесь: https://github.com/ШарафМохамед/NetworKit

Спасибо. Я пошел вперед и столкнулся с другой проблемой. Я обновлю свой первоначальный пост.

Ion Turcanu 28.05.2019 17:17

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