本篇文章主要是指导大家如何正确使用open62541,避免进入坑里。


一 下载源码

墙裂推荐自己下载源码,然后编译,最后使用,这样会和运行的平台更加契合,减少无谓的错误。

open62541的github主页上给了三种下载方式,
在这里插入图片描述
下面分别来看看这三种方式,

1. 使用准备好的package

进入release页面,这里以1.2.4版本为例,找到其下的Asserts并展开,如下,
在这里插入图片描述
前面2个就是准备好的package,后缀为".deb",但是这个只能用在PC linux上,不能用于Windows或嵌入式上,虽然是推荐的方法,但是通用性不好,应该是适合那些不想折腾下载编译过程的Linux用户。

有时也会提供Windows下运行的包,但还是推荐自己下载源码去编译使用。

2. 使用pack分支的zip包(推荐)

这个方法个人觉得比较方便好用,也是本人推荐的方法。

现在open62541有1.0, 1.1, 1.2和1.3等版本,每个版本都有一个对应的pack分支版本,里面不仅包含了对应版本的最新代码,同时也包含了需要的子模块,无需后续下载。

首先点击master这个框,展开如下,
在这里插入图片描述
这里1.2版本为例,往下拉找到1.2版本的pack分支,
在这里插入图片描述
点击这个分支,然后第1步确定分支已经选择成功,
在这里插入图片描述
第2步点击右侧的绿色图标,第3步点击"Download ZIP",这样就可以下载1.2版本对应的pack分支代码了。

3. 使用git命名下载

以1.2.3为例,命令如下,

git clone -b v1.2.3  https://github.com/open62541/open62541.git

通过此方法下载下来的源码里会有版本号,这样进行CMake编译时不会出现没有版本号的警告。

后续如果需要某些功能(如自定义namespace)时就需要下载一些子模块,命令如下,

git submodule update --init --recursive

如果使用git下载很慢,请尝试下面2步,

Step1 手动下载Release代码

点击这里进入open62541的github地址,然后在右侧找到Releases,点击蓝色的“+35 releases”,
在这里插入图片描述

展开后,找到想要的release版本,这里以v1.1.3为例,
在这里插入图片描述
往下找到这个版本的Asserts,然后点击展开,最后2项就是源码,随便选一个下载就行了(点击就可下载)。
在这里插入图片描述
这种方式有个缺点:下载下来的源码里没有git信息,这样就没有版本号,CMake编译时出现没有版本号的警告。不过也不影响使用;而且也不能使用git命令去下载子模块

Step2 手动下载子模块

由于没有git信息,所以不能使用git命令去下载子模块。如何解决?首先要弄清需要下载哪些子模块,在open62541源码目录下有个
.gitmodules文件,打开后如下,

[submodule "deps/mdnsd"]
	path = deps/mdnsd
	url = https://github.com/Pro/mdnsd.git
[submodule "deps/ua-nodeset"]
	path = deps/ua-nodeset
	url = https://github.com/OPCFoundation/UA-Nodeset
	branch = v1.04

这些就是需要下载的子模块,总共2个,

  • mdnsd,位置:open62541源码目录/deps/mdnsd,用于Discovery功能
  • ua-nodeset,位置:open62541源码目录/deps/ua-nodeset,用于自定义namespace

这2个子模块可以单独去github网站上下载,去网站使用浏览器下载,速度会比在命令行下快,应该是浏览器的下载加成所致。


二 再次申明

一定要选择release版本的,不要使用main分支或其它Branches的代码,因为release版本的是经过测试验证的,而main分支或其它Branches的代码,都是处于修改中,没有正式测试,轻易使用会产生无法预料的后果。


三 小结

基本上来说,按照上述步骤来操作,就不会有太多问题。

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐