学习open62541 --- [38] 避坑指南
如何正确使用open62541
本篇文章主要是指导大家如何正确使用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网站上下载,去网站使用浏览器下载,速度会比在命令行下快,应该是浏览器的下载加成所致。
-
mdnsd:https://github.com/Pro/mdnsd,下载release版本,或者使用本人上传到百度云的文件,点击这里,提取码z1he,注意放置位置,
-
ua-nodeset:https://github.com/OPCFoundation/UA-Nodeset/releases/tag/UA-1.04-2019-05-01,下载后解压到对应目录就行了,注意放置位置,
二 再次申明
一定要选择release版本的,不要使用main分支或其它Branches的代码,因为release版本的是经过测试验证的,而main分支或其它Branches的代码,都是处于修改中,没有正式测试,轻易使用会产生无法预料的后果。
三 小结
基本上来说,按照上述步骤来操作,就不会有太多问题。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)