一、下载freeopcua的源码
git clone https://github.com/FreeOpcUa/freeopcua.git
切换回2016-10-8的版本
git reset 8c16900b14e76d38cacb8a8a8e22cfb4410ef358
需要的依赖
sudo apt-get install libboost-all-dev sudo apt-get install m4 sudo apt-get install autoconf automake sudo apt-get install libtool sudo apt-get install g++ sudo apt-get install libxml2-dev
编译出现:
internal compiler error: Killed (program cc1plus) 在 640M 内存的 vps 做编译的时候出现了上述错误. 几经搜索, 才发可能是系统没有交换分区, 编译过程中内存耗尽, 导致了编译中断 … 解决方式也很简单, 就是增加一个交换分区: 1. 创建分区文件, 大小 2G dd if=/dev/zero of=/swapfile bs=1k count=2048000 2. 生成 swap 文件系统 mkswap /swapfile 3. 激活 swap 文件 swapon /swapfile 这样就木有问题了, 但是这样并不能在系统重启的时候自动挂载交换分区, 这样我们就需要修改 fstab. 修改 /etc/fstab 文件, 新增如下内容: /swapfile swap swap defaults 0 0 这样每次重启系统的时候就会自动加载 swap 文件了.
二、使用cmake编译
需要安装mbedtls
git clone https://github.com/ARMmbed/mbedtls.git 切换分支 git checkout -b mbedtls-2.4 origin/mbedtls-2.4 切换到2.4分支 git branch development * mbedtls-2.4
然后用cmake安装
# 生成makefile文件,启用生成动态链接库选项 cmake -DUSE_SHARED_MBEDTLS_LIBRARY=On . # 以下步骤和make方式相同 make sudo make install