首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >open62541:构建PubSub示例时出错

open62541:构建PubSub示例时出错
EN

Stack Overflow用户
提问于 2019-03-05 20:27:25
回答 1查看 647关注 0票数 0

目前,我正在尝试构建open62541实现的PubSub示例。我已经检查过documentation on how to build the examples好几次了,但我还是弄不明白。

我已经尝试编译了PubSub教程示例。这包括tutorial_pubsub_publish.c和tutorial_pubsub_subscribe.c文件。在我克隆了存储库之后,我构建了如下的库:

代码语言:javascript
复制
mkdir build 
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=ON - 
DUA_ENABLE_AMALGAMATION=ON -DUA_ENABLE_PUBSUB=ON ..
make

首先,我编译了publish示例,它可以工作:

代码语言:javascript
复制
gcc -std=c99 -o PubSub_Publish_Example open62541.c tutorial_pubsub_publish.c

然后,我尝试以相同的方式编译订阅示例,如下所示:

代码语言:javascript
复制
gcc -std=c99 -o PubSub_Publish_Example open62541.c tutorial_pubsub_subscribe.c

这就产生了很多错误--都是说“没有这样的文件或目录(第一个错误是#include " ua_architecture_base.h "),然后我尝试用ua_architecture_base.h编译它,得到其他丢失的文件或目录错误,等等……

我还试图编译open62541的整个include文件夹,但也得到了“没有这样的文件或目录”的错误:

代码语言:javascript
复制
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文件夹的示例。相反,它还包含一些其他的头文件:

代码语言:javascript
复制
#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头文件?

EN

回答 1

Stack Overflow用户

发布于 2019-03-06 00:38:56

我成功地遵循了“使用Windows的CMake构建”的说明。

使用cmake-gui我选择了(高级)特性: UA_BUILD_EXAMPLES、UA_ENABLE_PUBSUB、UA_ENABLE_PUBSUB_INFORMATIONMODEL、UA_ENABLE_PUBSUB_INFORMATIONMODEL_METHODS和UA_NAMESPACE_ZERO = FULL

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55002815

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档