RefBox のインストール(Ubuntu 14.04 – 2019/06/25版)
基本形はRefBox のインストール(2019/03/11版)ですが,refBox とMPS間の通信がOPCに変わったため,freeopcua のパッケージのインストールが必要となります.
ググってみたところ,https://github.com/FreeOpcUaとのことですので,取ってきましょう.
mbedtls/entropy.h が見つからないエラーに対しては,https://github.com/wolfeidau/mbedtlsを使うのかと思いますが,そっちのreadmeを見ると,ある機器とケーブルつないでって書いているのでちょっと面倒くさそうです.
そこで,回避策として,freeopcuaのCMakeLists.txt の以下の部分をONからOFFに書き換えましょう.
option(SSL_SUPPORT_MBEDTLS "Support rsa-oaep password encryption using mbedtls library " ON)
あと,mps_comm.mk にて mbedtlsのライブラリが指定されていますので,コメントアウトしましょう.
LDFLAGS_MPS_COMM = $(shell $(PKGCONFIG) --libs $(FREEOPCUA_COMPONENTS)) # -lmbedtls
git clone https://github.com/FreeOpcUa/freeopcua cd freeopcua vi CMakeLists.txt # please change the option for SSL_SUPPORT_MBEDTLS from ON to OFF ccmake . # please select [ c ] => [ c ] => [ g ] cmake . make sudo make install
この状態で,新しいRefBox をmake すると,エラーメッセージが大量に出ます.
最初の方が読めないので,ファイルに落としましょう.
make 2> err.txt head err.txt /usr/include/c++/4.8/bits/c++0x_warning.h:32:2: error: #error This file requires compiler and library support for the ISO C++ 2011 standard. This support is currently experimental, and must be enabled with the -std=c++11 or -std=gnu++11 compiler options.
とのことですので,-std=c++11 のオプションが必要かと思いきや,c++11ではなくc++14が必要です.
Makefile を変更して,CFLAGS に -std=c++14 を追加します.
ifeq ($(HAVE_MPS_COMM),1) CFLAGS += $(CFLAGS_MPS_COMM) -std=c++14 LDFLAGS += $(LDFLAGS_MPS_COMM) LIBS_all = $(LIBDIR)/libmps_comm.so else WARN_TARGETS += warning_libmps_comm endif
-std=c++11にすると,‘chrono_literals’ でエラーが出ます.
c++11 ではなく,c++14が必要らしいですが,Ubuntu 14.04 だと対応していません….
Ubuntu 14.04 に GCC 4.9 をインストールするを参考に作業しましょう.
sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get install g++-4.9 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 10 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.8 10 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-4.9 20 sudo rm /usr/bin/cpp sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.8 10 sudo update-alternatives --install /usr/bin/cpp cpp /usr/bin/cpp-4.9 20 sudo update-alternatives --install /usr/bin/cc cc /usr/bin/gcc 30 sudo update-alternatives --set cc /usr/bin/gcc sudo update-alternatives --install /usr/bin/c++ c++ /usr/bin/g++ 30 sudo update-alternatives --set c++ /usr/bin/g++
これで,make が通ります.
コメントを残す