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