HP-Socket第三方库编译篇-Linux

HP-Socket简介

HP-Socket是一套通用的高性能TCP/UDP/HTTP 通信框架,包含服务端组件、客户端组件和Agent组件,广泛适用于各种不同应用场景的TCP/UDP/HTTP通信系统,提供C/C++、C#、Delphi、E、Java、Python等编程语言接口。HP-Socket对通信层完全封装,应用程序不必关注通信层的任何细节;HP-Socket提供基于事件通知模型的API接口,能非常简单高效地整合到新旧应用程序中。

为了让使用者能方便快速地学习和使用HP-Socket,迅速掌握框架的设计思想和使用方法,特此精心制作了大量Demo示例(如:PUSH模型示例、PULL模型示例、PACK模型示例、性能测试示例以及其它编程语言示例)。HP-Socket当前支持Windows和Linux平台。

以上来自于百度百科的解释

概述

大家好,很幸运能和大家分享一些技术知识,至于为什么有这篇文章是因为当时在想交叉编译HP-Socket的时候,发现里面的一些第三方库都是已经编译好的,可能是作者为了更加方便大家使用,但是一些其它DIY的操作就很少,因为HP-Socket整体的社区更偏向于E语言,其它语言的资料就比较稀少了,也没有人解答,不过还好遇到了怪*_^兽大佬给了我一些资料支持,特此感谢大佬的支持,也成就了我可以为HP-Socket的社区添砖加瓦,方便其它小伙伴学习使用,也希望HP-Socket的社区越来越好吧,加油!!

废话不多说那就开始我们今天的操作吧

编译环境需求

目标架构编译器,cmake,主要就是这俩
配置文件

编译brotli

brotli的编译就相对简单一些没有什么特殊的条件配置等
brotli的MakeFile拷贝到brotli文件夹内修改MakeFile输出目录为自己的输出目录即可
最后执行下方命令正常编译即可

$ make
$ sudo make install
$ make distclean//清理操作

编译jemalloc

先通过以下命令创建MakeFile
可以将命令里的输出目录修改为你自己的输出目录

./autogen.sh --prefix=/usr/local/jemalloc --without-export --disable-initial-exec-tls --disable-libdl
     # (--disable-initial-exec-tls supported since 5.1.0, --disable-libdl supported since 5.2.0)

MakeFile创建完成了,修改MakeFile文件几个配置字段
第一步

//修改MakeFile里的 -g3 全部替换为 -g0

第二步

//找到$(STATIC_LIBS):字段将内容全部替换为以下内容
$(STATIC_LIBS):
	@mkdir -p $(@D)
	for f in $+; do \
		cp -f $$f $$(dirname $$f)/je_$$(basename $$f); \
	done	
	$(AR) $(ARFLAGS) $@ $(foreach n,$+,$(dir $(n))je_$(notdir $(n)))

第三步

//找到clean:字段将下方条件添加到字段内
	rm -f $(srcroot)src/je_*.o

最后执行下方命令正常编译即可

//编译即可
$ make build_lib_static
$ sudo make install_lib && sudo make install_include && sudo make install_bin
$ make clean && make distclean//清理操作

编译mimalloc

mimalloc的编译也相对简单一些,没有什么特殊的条件配置等
mimalloc的MakeFile拷贝到mimalloc文件夹内修改MakeFile输出目录为自己的输出目录即可
最后执行下方命令正常编译即可

$ make
$ sudo make install
$ make distclean//清理操作

编译openssl

简单粗暴执行这个shell就行,记得传参目录,和修改你自己的输出目录
./script.sh openssl3.0

#!/bin/bash

CURRENT_PATH=$(pwd)
PACKAGE_PATH=$(cd "$1"; pwd)
VERSION=${PACKAGE_PATH##*-}

EXT_OPS=$([[ $VERSION =~ ^1\..* ]] && echo "" || echo "--api=1.1.1 enable-fips")

echo PACKAGE_PATH: $PACKAGE_PATH
echo VERSION: $VERSION

cd $PACKAGE_PATH

./config --prefix=/usr/local/openssl-${VERSION} $EXT_OPS no-asm no-shared no-dso no-deprecated enable-ssl3 enable-ssl3-method no-unit-test no-tests

make
sudo make install_sw
make clean && make distclean

编译zlib

先通过以下命令创建MakeFile
可以将命令里的输出目录修改为你自己的输出目录
./configure --prefix=/usr/local/zlib

编辑MakeFile
第一步

//找到CFLAGS添加-g0 -O3 -fPIC -DPIC ...
//找到SFLAGS添加-g0 -O3 -fPIC -DPIC ...

第二步

//找到libz.a 字段修改为以下内容
libz.a: $(OBJS)
   for f in $(OBJS); do \
   	cp -f $$f $$(dirname $$f)/z_$$(basename $$f); \
   done	
   $(AR) $(ARFLAGS) $@ $(foreach n,$(OBJS),$(dir $(n))z_$(notdir $(n)))
   -@ ($(RANLIB) $@ || true) >/dev/null 2>&1

最后执行下方命令正常编译即可

$ make
$ sudo make install
$ make clean && make distclean//清理操作

总结

整体来说编译这些非常简单,就是没有完善的资料相关支持较少希望作者以后能在其它语言的社区做的更加完善吧,如果小伙伴用到其它架构可以修改指向自己的编译器自行编译即可,后续可能会出windows和Android的相关内容具体看情况吧,另外看情况以及需求是否需要出一期简化HP-Socket或第三方库精简详解,减小HP-Socket框架大小针对需求简化等等,如果有问题希望大家可以指出互相交流学习,可以在评论区讨论一下~

  • 7
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值