交叉编译HP-SOCKET

HP-SOCKET是一个开源的、通用的高性能TCP/UDP/HTTP 通信框架吗,而且提供很多编程语言的接口。近期做ARM平台的开发,需要用到UDP及TCP的通信,因此选了HP-SOCKET框架。下面是其交叉编译的过程。
由于HP-SOCKET依赖于zlib和openssl,因此需要先对这两个库进行交叉编译。


1、交叉编译zlib
首先下载zlib-1.2.11.tar.gz,这个网上教程有很多,因此不再赘述。
1.mkdir install
2.export CC=aarch64-himix200-linux-gcc
3…/configure --prefix=$(pwd)/install
4.make
5.make install

注意:需要将交叉编译工具换成自己平台的。
编译好的库会放在install文件夹里面。包括include、lib和share三个文件夹。


2、交叉编译opensll
网上很多人说编译的时候要修改makefile,后面查找了很多资料,有一个修改configure的方法,如下:(openssl早期版本需要通过–cross-compile-prefix=aarch64-himix200-linux-指定了命令前缀)
1、mkdir install
2、./Configure linux-generic64 no-asm shared no-async --prefix=$(pwd)/install/ CROSS_COMPILE=aarch64-himix200-linux- CC=gcc
3、make
4、make install

注意如果平台是32位的,需要改为linux-generic32,另外需要将交叉编译工具换成自己平台的。
编译好的库会放在install下的lib文件夹里面。


3、将编译好的库拷贝到HP-SOCKET文件夹中
我用的是hp-socket-5.7.1,下载方式也不再赘述。
首先在/hp-socket-5.7.1/Linux/dependent/路径下创建一个名为ARM的文件夹,然后在里面创建include和lib文件夹。
之后将zlib和openssl拷贝过来,只需要拷贝头文件和库。如下图所示
交叉编译HP-SOCKET_第1张图片
include文件夹中有如下文件交叉编译HP-SOCKET_第2张图片
注意openssl的头文件需要连文件夹一起拷贝

lib文件夹中有如下文件交叉编译HP-SOCKET_第3张图片
lib文件夹里面应该有没用的文件,不过我这边没试,各位有时间可以自己测试一下。


4、交叉编译hp-socket
命令如下:./compile.sh -c aarch64-himix200-linux-g++ -p arm64
注意:需要将交叉编译工具换成自己平台的。
编译完成后,生成的库在/hp-socket-5.7.1/Linux/lib/hpsocket/ARM中
5、hp-socket使用
使用时将hp-socket库拷贝到程序的相应位置,另外还需要拷贝依赖库。然后
export LD_LIBRARY_PATH=" /写入库的地址/"

以上就是hp-socket的编译过程,其中或许有些问题或疏漏,欢迎交流讨论。

你可能感兴趣的:(linux,arm开发,网络)