我的github:codetoys,所有代码都将会位于ctfc库中。已经放入库中我会指出在库中的位置。
这些代码大部分以Linux为目标但部分代码是纯C++的,可以在任何平台上使用。
目录
open62541是什么
是开源的OPC-UA库,用C语言编写。
下载
搜。
Ubuntu编译
我用的是open62541-1.3.5.zip,在ubuntu上解压,进入解压后的目录。
编译使用cmake 和ccmake,如果还没有安装需要根据提示安装,我用的是:
sudo apt install cmake
sudo apt install cmake-curses-gui
按照cmake的习惯,先要这样:
mkdir build
cd build
cmake ..
这样就生成了默认的编译配置。然后用ccmake来修改配置:
ccmake ..
这是个字符窗口程序,可以用光标操作。一般我们喜欢生成一对h和c文件,这样比较简单,这个由UA_ENABLE_AMALGAMATION控制,光标移动过去,敲一下回车。(讲真,字符窗口真low啊,我折腾过curses库,想做得漂亮太难了)
然后Press [c] to configure,再Press [g] to generate and exit(前面那个敲了才会出现这个)。
这就算改了配置了,然后可以编译:
cmake ..
make
sudo make install
编译并且安装了。
生成文件open62541.c和open62541.h(位于build目录下,也就是当前位置,生成的.a则在bin目录下)。
交叉编译arm64
我用的交叉编译环境不需要做任何额外设置,按照上面的操作直接生成了arm64的库(由于编译过程没有命令回显,内心很忐忑),然后链接到程序,拿到设备上正确运行了。
厉害。
Windows编译
(这段是以前记录的,本次并未重新验证,不过看起来应该没问题)
先安装下列软件:
Cmake
Python
安装后重启系统
在cmd进入源码解压缩后的目录
mkdir build
cd build
cmake .. -DUA_ENABLE_AMALGAMATION=ON (此参数控制生成单一文件,一对.h和.c)
不报错就表示成功,会在build目录下看到Visual Studio的工作区和项目文件
用Visual Studio打开工作区文件,编译生成全部
build目录下生成open62541.c open62541.h
build\bin下面与编译类型对应的目录下可以找到open62541.lib
(这里是结束)