WINDOWS:OPEN62541编译

本文详细介绍了在Windows10环境下使用VisualStudio2019Community和CMake3.15.0进行Open62541 v1.1.2源码编译的过程。通过配置源码和编译目录,并启用UA_ENABLE_AMALGAMATION选项,最终成功生成了open62541.c和.h文件。

WINDOWS:OPEN62541编译

编译时的配置

windows 10

Visual Studio 2019 Community

CMake 3.15.0

source code: open62541-1.1.2

CMake

第一步,配置源码和编译目录

在这里插入图片描述
选择编译选项:UA_ENABLE_AMALGAMATION=ON

第二步,打开工程,编译生成open62541.c/.h
在这里插入图片描述
完成

open62541在不同环境下有不同的编译方法,以下是详细介绍: ### Linux 环境编译 在 Linux 下编译可按以下步骤操作: ```bash # 安装依赖 sudo apt-get install git build-essential gcc pkg-config cmake python # 启用额外功能 sudo apt-get install cmake-curses-gui # 用于 ccmake 图形界面 sudo apt-get install libmbedtls-dev # 用于加密支持 sudo apt-get install check libsubunit-dev # 用于单元测试 sudo apt-get install python-sphinx graphviz # 用于文档生成 sudo apt-get install python-sphinx-rtd-theme # 文档样式 # 进入 open62541 目录 cd open62541 # 创建并进入构建目录 mkdir build cd build # 配置 CMake cmake -DCMAKE_INSTALL_PREFIX=/home/keda/x64tool-root/open62541 .. # 编译 make # 选择额外功能 cmake .. make # 构建文档 make doc # HTML 文档 make doc_pdf # PDF 文档(需要 LaTeX) ``` 此外,若在 Windows 下使用 CMake 编译生成 open62541.h 和 open62541.c 文件会缺少一些函数导致工程无法编译,可在 Linux 下编译.c 和.h 文件后拷贝到 Windows 下使用[^1][^4]。 ### 交叉编译 若要将 open62541 的应用程序移植到 i.mx6u 嵌入式控制器,可在 ubuntu Linux 下进行交叉编译,虽然网络上讲解 i.mx6 交叉编译的文章大多使用虚拟机实现且过于复杂,但在 ubuntu OS 下开发 ARM 嵌入式应用软件相对简单,不过引用中未提及具体交叉编译步骤,仅记录了该场景下开发的情况[^2]。 ### 特定编译选项 还可使用特定的编译选项进行编译,示例如下: ```bash cmake -DUA_BUILD_EXAMPLES=OFF -DUA_ENABLE_AMALGAMATION=ON -DUA_NAMESPACE_ZERO=FULL -DUA_ENABLE_FULL_NS0=ON -DUA_ENABLE_SUBSCRIPTIONS_EVENTS=ON -DUA_ENABLE_SUBSCRIPTIONS_ALARMS_CONDITIONS=ON -DUA_ENABLE_STATIC=ON -DUA_ENABLE_DISCOVERY=ON -DUA_ENABLE_SUBSCRIPTIONS=ON -DUA_ENABLE_ENCRYPTION=ON -DUA_ENABLE_HISTORIZING=ON -DUA_ENABLE_ENCRYPTION_MBEDTLS=ON -DMBEDTLS_INCLUDE_DIRS=/home/mbedtls-v2.6.0/include -DMBEDTLS_LIBRARY=/home/mbedtls-v2.6.0/lib/mbedtls-library/libmbedtls.a -DMBEDCRYPTO_LIBRARY=/home/mbedtls-v2.6.0/lib/mbedtls-library/libmbedcrypto.a -DMBEDX509_LIBRARY=/home/mbedtls-v2.6.0/lib/mbedtls-library/libmbedx509.a -DCMAKE_INSTALL_PREFIX=/home/open62541/install .. ``` 该命令设置了一系列编译选项,如是否构建示例、启用合并、命名空间设置、加密支持等选项[^5]。 ### 编译可能遇到的问题及解决 使用 cmake 时可能出现报错提示 `CMake Error at CMakeLists.txt:1170 (message): File /.../open62541-1.3/deps/ua-nodeset/Schema/Opc.Ua.NodeSet2.xml not found. You probably need to initialize the git submodule for deps/ua-nodeset or set open62541_NODESET_DIR.`,此时需要初始化 `deps/ua-nodeset` 的 git 子模块或设置 `open62541_NODESET_DIR` [^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值