1.编译mbedtls
1.mkdir build //创建生成文件保存路径
2.选择交叉编译器,两种方法:
①直接将编译器设置到环境变量
export CC=/gcc路径/
export CXX=/g++路径/
②用宏
cmake .. -DCMAKE_C_COMPILER=/home/hapoa/crosschain/bin/arm-linux-gnueabi-gcc
3.设置编译选项
cmake .. -DENABLE_TESTING:Bool=OFF -DENABLE_PROGRAMS:Bool=ON
4.make
2.编译open62541
1. 配置
在open62541源码目录下的CMakeLists.txt里找到以下4个option,
UA_ENABLE_AMALGAMATION
UA_ENABLE_ENCRYPTION
UA_ENABLE_ENCRYPTION_OPENSSL
UA_ENABLE_ENCRYPTION_MBEDTLS
把第1,2和4改为ON,第3改为OFF
2. 查找mbedTLS
打开open62541源码目录下的tools/cmake/FindMbedTLS.cmake,修改为如下内容,
#check environment variable
if("$ENV{MBEDTLS_FOLDER_INCLUDE}")
set(MBEDTLS_FOLDER_INCLUDE "$ENV{MBEDTLS_FOLDER_INCLUDE}")
else()
set(MBEDTLS_FOLDER_INCLUDE "/home/wh/work/opcua/encryption_mbedtls/mbedtls/include") //mbedtls头文件路径
endif()
if("$ENV{MBEDTLS_FOLDER_LIBRARY}")
set(MBEDTLS_FOLDER_LIBRARY "$ENV{MBEDTLS_FOLDER_LIBRARY}")
else()
set(MBEDTLS_FOLDER_LIBRARY "/home/wh/work/opcua/encryption_mbedtls/mbedtls/library") //mbedtls库路径
endif()
3.设置编译器路径
cmake .. -DCMAKE_C_COMPILER=/编译器路径/
4.编译
make