一、安装交叉编译环境
二、交叉编译openssl
1、下载openssl1.0.1.tar.gz (不能低于此版本)
2、交叉编译openssl
$ 执行./config no-asm -shared --prefix=/usr/local/ssl-arm/ 产生Makefile
$ 修改Makefile CC= arm-hisiv500-linux-gcc 去除编译和链接选项 -m64
$ 执行make && make install 编译和安装openssl库
三、交叉编译zlib
1、下载zlib-1.2.8.tar.gz
2、交叉编译Zlib
$ tar jvxf zlib-1.2.3.tar.bz2
$ cd zlib-1.2.3/
$ export CC=arm-linux-gnu-gcc //它的configure不支持用CC变量来指定交叉工具链
$ ./configure --prefix=$PWD/_install //最后生成的库、头文件和man文件都在当前目录的_install目录下
$ make && make install
四、交叉编译libwebsocket
1、下载libwebsocket.tar
2、交叉编译libwebsocket
$ cd libwebsockets-master
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/lu/libwebsocket_arm .. \
-DCMAKE_SYSTEM_NAME=Linux -DCMAKE_C_COMPILER=arm-hisiv500-linux-gcc \
-DCMAKE_CXX_COMPILER=arm-hisiv500-linux-g++ \
-DZLIB_INCLUDE_DIR=/lu/zlib-1.2.8/_install/include \
-DZLIB_LIBRARY="/lu/zlib-1.2.8/_install/lib/libz.so" \
-DLWS_OPENSSL_INCLUDE_DIRS=/usr/local/ssl-arm/include/ \
-DLWS_OPENSSL_LIBRARIES="/usr/local/ssl-arm/lib/libssl.so;/usr/local/ssl-arm/lib/libcrypto.so"
cmake 参数说明:
-DCMAKE_INSTALL_PREFIX 指定编译库安装路径
-DCMAKE_SYSTEM_NAME 指定系统为Linux
-DCMAKE_C_COMPILER 指定C语言编译器如交叉编译器未加入到环境变量,需要使用绝对路径
-DCMAKE_CXX_COMPILER 指定c++编译器
-DZLIB_INCLUDE_DIR 指定ZLIB头文件目录
-DZLIB_LIBRARY 指定ZLIB动态库路径
-DLWS_OPENSSL_INCLUDE_DIRS 指定Openssl头文件目录
-DLWS_OPENSSL_LIBRARIES 指定Openssl动态库路径