open62541: ошибка при создании примера PubSub

В настоящее время я пытаюсь построить пример PubSub реализации open62541. Я уже несколько раз просматривал документацию о том, как создавать примеры, но не могу понять.

Я попытался скомпилировать учебные примеры PubSub. Это включает в себя файлы tutorial_pubsub_publish.c и tutorial_pubsub_subscribe.c. После того, как я клонировал репозиторий, я построил библиотеку следующим образом:

mkdir build 
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON - 
DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_PUBSUB=ON ..
make

Сначала я скомпилировал пример публикации, который работал:

gcc -std=c99 -o PubSub_Publish_Example open62541.c tutorial_pubsub_publish.c

Затем я попытался скомпилировать пример подписки таким же образом, как это:

gcc -std=c99 -o PubSub_Publish_Example open62541.c tutorial_pubsub_subscribe.c

Это породило множество ошибок - все говорили: "Нет такого файла или каталога (первая ошибка была для #include "ua_architecture_base.h"). Затем я попытался скомпилировать его с помощью ua_architecture_base.h и получить другую отсутствующую ошибку файла или каталога и т. Д....

Я также попытался скомпилировать целую папку include в open62541, но я также получаю ошибки "Нет такого файла или каталога":

gcc -std=c99 -I /home/theresa/Desktop/open62541/include -o PubSub_Subscribe_Example open62541.c tutorial_pubsub_subscribe.c

Я также заметил, что из всех примеров, предоставленных мастером open62541, файл tutorial_pubsub_subscribe.c является единственным примером, который НЕ включает папку open62541.h. Вместо этого он включает несколько других заголовочных файлов:

#include "ua_pubsub_networkmessage.h"
#include "ua_log_stdout.h"
#include "ua_server.h"
#include "ua_config_default.h"
#include "ua_pubsub.h"
#include "ua_network_pubsub_udp.h"
#ifdef UA_ENABLE_PUBSUB_ETH_UADP
     #include "ua_network_pubsub_ethernet.h"
#endif
#include "src_generated/ua_types_generated.h"
#include <stdio.h>
#include <signal.h>

Итак, как я могу скомпилировать и запустить пример tutorial_pubsub_subscribe.c и почему пример подписчика не включает заголовочный файл open62541?

1 ответ

У меня был успех, следуя инструкциям "Сборка с CMake для Windows".
Используя cmake-gui, я выбрал (расширенные) функции: UA_BUILD_EXAMPLES, UA_ENABLE_PUBSUB, UA_ENABLE_PUBSUB_INFORMATIONMODEL, UA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS и UA_NAMESPACE_ZERO = FULL

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