网络技术网站是做什么的,江门网站设计制作,网站建设 中标,做网站哪个语言好libwebsocket中的webscoket加密功能需要依赖于Openssl库因此需要提前准备好openssl开源库。
交叉编译openssl
下面演示源码方式交叉编译OpenSSL为动态库。 创建个Websocket文件夹#xff0c;把后续的成果物均放在这个文件中#xff0c;文件夹中创建子文件夹OpenSSL和libWeb…libwebsocket中的webscoket加密功能需要依赖于Openssl库因此需要提前准备好openssl开源库。
交叉编译openssl
下面演示源码方式交叉编译OpenSSL为动态库。 创建个Websocket文件夹把后续的成果物均放在这个文件中文件夹中创建子文件夹OpenSSL和libWebsockets用于分别存放后续编译的成果物头文件和动态库静态库方便后续其他文件引用。
然后压缩OpenSSL文件解压后的目录层级如下 进入到openssl-1.1.1t目录中 查看之前建好的用于存放Openssl成果物的路径复制下来 进入openssl编译路径 配置编辑参数 no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程 shared: 生成动态连接库。 no-async: 交叉编译工具链没有提供GNU C的ucontext库 --prefix: 安装路径 --cross-compile-prefix: 交叉编译工具 输入如下命令 ./config no-asm shared no-async --prefix/data1/shenhao11/WebScoketDemo/Websockets/Openssl --cross-compile-prefixarm-ca9-linux-gnueabihf-
配置成功后显示如下画面同时目录下生成Makefile文件 打开生成的Makefile文件删除其中的-m64和-m32选项 删除后 删除后不能忘记要添加交叉编译的环境变量否则后续编译可能会出错 export LD_LIBRARY_PATHdirname $(dirname $(which arm-ca9-linux-gnueabihf-gcc))/usr/local/lib
然后再当前目录执行make 命令开始编译 编译成功后 执行make install 进行安装
安装完成后显示如下 同时在我们的成果物路径下生成如下文件 可以看到lib目录下生成了交叉编译后的我们需要的openssl的动态库 交叉编译libwebsockets-main
然后我们开始交叉编译libwebsockets-main
先解压该文件解压后进入该文件目录 创建build目录
进入build
执行cmake命令 cmake 参数说明 -DCMAKE_SYSTEM_NAME 指定系统为Linux -DCMAKE_C_COMPILER 指定C语言编译器如交叉编译器未加入到环境变量需要使用绝对路径 -DCMAKE_CXX_COMPILER 指定c编译器 -DLWS_OPENSSL_INCLUDE_DIRS 指定Openssl头文件目录 -DLWS_OPENSSL_LIBRARIES 指定Openssl动态库路径 cmake -DCMAKE_SYSTEM_NAMELinux \ -DCMAKE_C_COMPILERarm-ca9-linux-gnueabihf-gcc \ -DCMAKE_CXX_COMPILERarm-ca9-linux-gnueabihf-g \ -DLWS_OPENSSL_INCLUDE_DIRS/data1/shenhao11/WebScoketDemo/Websockets/Openssl/include \ -DLWS_OPENSSL_LIBRARIES/data1/shenhao11/WebScoketDemo/Websockets/Openssl/lib/libssl.so;//data1/shenhao11/WebScoketDemo/Websockets/Openssl/lib/libcrypto.so ..
注意最后还有.. 意思是根据执行上一级目录下的CMakeList来执行cmake cmake完成后如下所示 会在build目录下生成一堆文件和Makefile文件 我们打开cmake_install.cmake文件
修改这个参数路径为之前创建的成果物路径
修改前 将成果物路径复制下修改指定路径 将安装路径修改为该路径修改后 然后再当前目录执行make开始编译
make后的界面如下 同时会在build目录中的bin目录下生成可执行的测试demo 最后执行make install 进行安装 将成果物拷贝到之前创建好的路径中 可打开成果物路径查看