1.websocket 轻量级库适合嵌入式开发,支持如下协议(官网介绍)
官网介绍:https://www.libwebsockets.org/
github:https://github.com/warmcat/libwebsockets
下载(github源码):
解压,并进入目录,根据文件发现是cmake 配置编译的。查阅资料,需要提供交叉编译好的zlib库和openssl库
2.交叉编译openssl
下载:https://www.openssl.org/source/snapshot/
放到ubuntu下进行解压,并进入,
设置交叉编译环境:
source /opt/fslc-framebuffer/2.4.4/environment-setup-armv7at2hf-neon-fslc-linux-gnueabi
config生成makefile
./config no-asm shared --prefix=$PWD/install
修改makefile 改正编译工具选项 及删除m64
然后 make && make install在与Makefile同级目录下生成install及子目录库、头文件
将openssl的生成目录install拷贝到 websocket目录下并改名:openssl_imx6
3.交叉编译zlib
下载(我下载的是最新的也就2017年的):http://www.zlib.net/fossils/
放到ubuntu下进行解压,并进入,
设置交叉编译环境:
source /opt/fslc-framebuffer/2.4.4/environment-setup-armv7at2hf-neon-fslc-linux-gnueabi
修改CMakeLists.txt,添加输出目录:
创建编译目录:mkdir build
并进入该目录:cd build
cmake配置:cmake ..
make
make install
最终生成:
将zlib的生成目录install_imx6拷贝到 websocket目录下并改名:zlib_imx6
4.交叉编译websocket
进入websocket目录创建编译目录:mkdir build
并进入cd build
修改cmake配置:vi …/CMakeLists.txt并在project(libwebsockets)那行下加如下面代码(注意绝对路径):
#设置openssl的库头文件
set(OPENSSL_INCLUDE_DIR "/home/wanji/liuruipeng/my-workespace/lib/build_out/libwebsockets-master/openssl_imx6/include/")
#设置openssl的库路径
set(OPENSSL_SSL_LIBRARY "/home/wanji/liuruipeng/my-workespace/lib/build_out/libwebsockets-master/openssl_imx6/lib/libssl.so")
#设置openssl的工具库
set(OPENSSL_CRYPTO_LIBRARY "/home/wanji/liuruipeng/my-workespace/lib/build_out/libwebsockets-master/openssl_imx6/lib/libcrypto.so")
#设置zlib的库头文件
set(ZLIB_INCLUDE_DIR "/home/wanji/liuruipeng/my-workespace/lib/build_out/libwebsockets-master/zlib_imx6/include/")
#设置openssl的库路径
set(ZLIB_LIBRARY "/home/wanji/liuruipeng/my-workespace/lib/build_out/libwebsockets-master/zlib_imx6/lib/libz.so")
#设置生成库的安装路径
SET(CMAKE_INSTALL_PREFIX "/home/wanji/liuruipeng/my-workespace/lib/build_out/libwebsockets-master/install_imx6")
还得修改CMakeLists.txt去掉 -Werror 否则编译不过
然后开始:
cmake ..
make
make install
最后生成: