如何解决make 命令返回错误:使用 open-opcua 构建 libOpenOpcUaSharedlib.so 时无效使用不完整类型
我正在使用 raspbian 编译器交叉编译 libOpenOpcUaSharedlib.so,即我的 c++ 应用程序的 openopcua 源代码中的 arm-rpi-4.9.3-linux-gnueabihf。这是 2017 或 2018 年的 openopcua 源代码。一般来说,要让 opcua 从 c++ 应用程序工作,需要交叉编译 4 个库,即 libOpenOpcUaClientLib.so(需要 openssl-1.0.0f)、libOpenOpcUaStack.so、libXMLSAXParser.so 和 libOpenOpcUaSharedlib.so openssl-1.0.0f)。因此,在使用上述 raspbian 编译器交叉编译 libOpenOpcUaSharedlib.so 时,我遇到了以下错误。有人可以帮助我吗?
如果使用最新的openopcua源代码进行交叉编译,这个问题会解决吗?
错误-
/home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/source/opcua_certficates.cpp:在函数'OpcUa_StatusCode OpcUa_Certificate_GetDateBound(OpcUa_ByteString*,OpcUa_DateTime*,OpcUa_Date /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/source/opcua_certficates.cpp:1126:38: 错误:不完整类型“X509 {aka struct x509_st}”的无效使用 ASN1_TIME* notAfter = pCertificate->cert_info->validity->notAfter; ^
在 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/crypto.h:36:0 包含的文件中, 来自 /home/murali/OpenOpcUa_1_0_4[在此处输入图像描述][1]_4/OpenOpcUaSharedLib/include/openssl/comp.h:22, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/ssl.h:28, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/stdafx.h:67, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/source/opcua_certficates.cpp:41: /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/types.h:157:16:错误:'X509 {aka struct x509_st}'的前向声明 typedef struct x509_st X509; 在 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/crypto.h:36:0 包含的文件中, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/comp.h:22, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/ssl.h:28, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/stdafx.h:67, 来自 /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/source/opcua_certficates.cpp:41: /home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/include/openssl/types.h:66:16: 错误:'ASN1_OBJECT {aka struct asn1_object_st}'的前向声明 typedef struct asn1_object_st ASN1_OBJECT; ^
/home/murali/OpenOpcUa_1_0_4_4/OpenOpcUaSharedLib/source/opcua_certficates.cpp:1352:15: 错误:不完整类型“ASN1_OBJECT {aka struct asn1_object_st}”的无效使用 oid->nid = nid = NID_subject_alt_name;
**请在下面的 github repo 中找到 OpenOpcua 源代码和 raspberry pi 工具: OpenOpcua 源代码 - github.com/Tanmay-Aipl/OpenOpcUa_1_0_4_4
树莓派工具 - github.com/raspberrypi/tools。
树莓派工具库中使用的编译器:tools/arm-bcm2708/arm-rpi-4.9.3-linux-gnueabihf/bin
用于编译的命令: 1. cd OpenOpcUaSharedLib 2. cmake CMakeLists.txt 3. make**
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。