open62541: ошибка при создании примера PubSub - PullRequest
0 голосов
/ 05 марта 2019

В настоящее время я пытаюсь создать пример 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 Ответ

1 голос
/ 05 марта 2019

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

...