Appweb-7.2.3交叉编译支持html

Appweb-7.2.3交叉编译支持html

环境:Ubuntu1604
编译链:4.8的Android编译链
Appweb源码:appweb-src.tgz
Android模块:RK3288

一、官网下载源码并解压源码(注意官网下载的是社区版,功能有阉割,像Building with FastCGI, Building with Proxy,Building with PHP,都没有,但跑个html还是没有问题的)
也可以克隆我在码云上的开源项目,地址https://gitee.com/huangriwang/appweb7.2.git

tar -xjvf appweb-src.tgz
cd appweb-7.2.3

二、修改文件,一共需要修改3个文件(appweb-linux-default.mk,appweb-linux-default-me.h,mprLib.c)
1.修改appweb-7.2.3\projects\appweb-linux-default.mk文件
……
NAME := appweb
VERSION := 7.2.3
PROFILE ?= default
ARCH ?= arm
CC_ARCH ?= arm
OS ?= linux
CC := arm-linux-androideabi-gcc
AR := arm-linux-androideabi-ar
CONFIG ?= ( O S ) − (OS)- (OS)(ARCH)- ( P R O F I L E ) B U I L D ? = b u i l d / (PROFILE) BUILD ?= build/ (PROFILE)BUILD?=build/(CONFIG)
……
ME_COM_MDB := 1
endif

#android 4.4 之后需要支持PIE -pie -fPIE
CFLAGS += -pie -fPIE

CFLAGS += -fPIC -fstack-protector --param=ssp-buffer-size=4 -Wformat -Wformat-security -Wl,-z,relro,-z,now -Wl,–as-needed -Wl,–no-copy-dt-needed-entries -Wl,-z,noexecstatck -Wl,-z,noexecheap -w
DFLAGS += -D_REENTRANT -DPIC ( p a t s u b s t (patsubst %,-D%, (patsubst(filter ME_%, ( M A K E F L A G S ) ) ) − D M E C O M C G I = (MAKEFLAGS))) -DME_COM_CGI= (MAKEFLAGS)))DMECOMCGI=(ME_COM_CGI) -DME_COM_COMPILER= ( M E C O M C O M P I L E R ) − D M E C O M D I R = (ME_COM_COMPILER) -DME_COM_DIR= (MECOMCOMPILER)DMECOMDIR=(ME_COM_DIR) -DME_COM_EJS= ( M E C O M E J S ) − D M E C O M E S P = (ME_COM_EJS) -DME_COM_ESP= (MECOMEJS)DMECOMESP=(ME_COM_ESP) -DME_COM_HTTP= ( M E C O M H T T P ) − D M E C O M L I B = (ME_COM_HTTP) -DME_COM_LIB= (MECOMHTTP)DMECOMLIB=(ME_COM_LIB) -DME_COM_MATRIXSSL= ( M E C O M M A T R I X S S L ) − D M E C O M M B E D T L S = (ME_COM_MATRIXSSL) -DME_COM_MBEDTLS= (MECOMMATRIXSSL)DMECOMMBEDTLS=(ME_COM_MBEDTLS) -DME_COM_MDB= ( M E C O M M D B ) − D M E C O M M P R = (ME_COM_MDB) -DME_COM_MPR= (MECOMMDB)DMECOMMPR=(ME_COM_MPR) -DME_COM_NANOSSL= ( M E C O M N A N O S S L ) − D M E C O M O P E N S S L = (ME_COM_NANOSSL) -DME_COM_OPENSSL= (MECOMNANOSSL)DMECOMOPENSSL=(ME_COM_OPENSSL) -DME_COM_OSDEP= ( M E C O M O S D E P ) − D M E C O M P C R E = (ME_COM_OSDEP) -DME_COM_PCRE= (MECOMOSDEP)DMECOMPCRE=(ME_COM_PCRE) -DME_COM_PHP= ( M E C O M P H P ) − D M E C O M S S L = (ME_COM_PHP) -DME_COM_SSL= (MECOMPHP)DMECOMSSL=(ME_COM_SSL) -DME_COM_VXWORKS= ( M E C O M V X W O R K S ) − D M E C O M W A T C H D O G = (ME_COM_VXWORKS) -DME_COM_WATCHDOG= (MECOMVXWORKS)DMECOMWATCHDOG=(ME_COM_WATCHDOG)
PIEFLAGS = -pie -fPIE
IFLAGS += "-IKaTeX parse error: Double superscript at position 51: …+= '-rdynamic' '̲-Wl,--enable-ne… O R I G I N / ′ 库 直 接 拷 贝 到 / s y s t e m / l i b / 里 面 使 用 的 , 如 果 带 了 这 个 参 数 会 导 致 D T 错 误 。 L I B P A T H S + = − L ORIGIN/' 库直接拷贝到/system/lib/里面使用的,如果带了这个参数会导致DT 错误。 LIBPATHS += -L ORIGIN//system/lib/使DTLIBPATHS+=L(BUILD)/bin
LIBS += -ldl -lm 删除-lpthread -lrt arm不需要这个库

DEBUG ?= debug
CFLAGS-debug ?= -g
……
$(BUILD)/bin/appweb: $(DEPS_47)
@echo ’ [Link] $(BUILD)/bin/appweb’
$(CC) -o $(BUILD)/bin/appweb $(PIEFLAGS) $(LDFLAGS) ( L I B P A T H S ) " (LIBPATHS) " (LIBPATHS)"(BUILD)/obj/appweb.o" $(LIBPATHS_47) $(LIBS_47) $(LIBS_47) $(LIBS) $(LIBS)
……
$(BUILD)/bin/authpass: $(DEPS_48)
@echo ’ [Link] $(BUILD)/bin/authpass’
$(CC) -o $(BUILD)/bin/authpass $(PIEFLAGS) $(LDFLAGS) ( L I B P A T H S ) " (LIBPATHS) " (LIBPATHS)"(BUILD)/obj/authpass.o" $(LIBPATHS_48) $(LIBS_48) $(LIBS_48) $(LIBS) $(LIBS)
……
$(BUILD)/bin/appweb-esp: $(DEPS_49)
@echo ’ [Link] $(BUILD)/bin/appweb-esp’
$(CC) -o $(BUILD)/bin/appweb-esp $(PIEFLAGS) $(LDFLAGS) ( L I B P A T H S ) " (LIBPATHS) " (LIBPATHS)"(BUILD)/obj/esp.o" $(LIBPATHS_49) $(LIBS_49) $(LIBS_49) $(LIBS) $(LIBS)
endif
……
$(BUILD)/bin/http: $(DEPS_51)
@echo ’ [Link] $(BUILD)/bin/http’
$(CC) -o $(BUILD)/bin/http $(PIEFLAGS) $(LDFLAGS) ( L I B P A T H S ) " (LIBPATHS) " (LIBPATHS)"(BUILD)/obj/http.o" $(LIBPATHS_51) $(LIBS_51) $(LIBS_51) $(LIBS) $(LIBS)
Endif
……
$(BUILD)/bin/makerom: $(DEPS_54)
@echo ’ [Link] $(BUILD)/bin/makerom’
$(CC) -o $(BUILD)/bin/makerom $(PIEFLAGS) $(LDFLAGS) ( L I B P A T H S ) " (LIBPATHS) " (LIBPATHS)"(BUILD)/obj/makerom.o" $(LIBPATHS_54) $(LIBS_54) $(LIBS_54) $(LIBS) $(LIBS)

……
$(BUILD)/bin/appman: $(DEPS_56)
@echo ’ [Link] $(BUILD)/bin/appman’
$(CC) -o $(BUILD)/bin/appman $(PIEFLAGS) $(LDFLAGS) ( L I B P A T H S ) " (LIBPATHS) " (LIBPATHS)"(BUILD)/obj/watchdog.o" $(LIBPATHS_56) $(LIBS_56) $(LIBS_56) $(LIBS) $(LIBS)
Endif
……
2.修改:appweb-linux-default-me.h
#ifndef ME_COMPILER_HAS_SYNC64
//#define ME_COMPILER_HAS_SYNC64 1 注释掉这个
#endif

3.\appweb-7.2.3\src\mpr\mprLib.c 增加代码在8765行后面
char *getpass(char *prompt)
{
return “NOT-SUPPORTED”;
}

三、编译
make -f projects/appweb-linux-default.mk
编译无错误会在build目录下生成linux-arm-default目录
可以通过arm-linux-androideabi-strip工具把库和执行文件瘦身

四、拷贝执行
借助adb工具,把编译好的linux-arm-default目录整个拷贝到/data/local/
adb push e:\linux-arm-default /data/local/

把linux-arm-default/bin/ 里面appweb用到的lib文件拷贝到/system/lib/
增加权限:
cp libappweb.so /system/lib/
cp libesp.so /system/lib/
cp libhttp.so /system/lib/
cp libmpr.so /system/lib/
chmod 777 ./appweb
cp libpcre.so /system/lib/ 不能拷贝这个库,这个库有问题的,会引起系统崩溃的。Appweb也不需要拷贝这个动态库。
./appweb --version
在这里插入图片描述

可以打印版本就成功了。

五、配置
修改max-server目录下面appweb.conf文件。
……

Server home directory for Appweb to find configuration files.

Appweb will change directory to this location when it runs.

Home “/vendor/opt/webbox”

Define the logging co

……

WARNING: this may disclose unwanted information. Do not enable in production releases.

ShowErrors on

……
GroupAccount root
UserAccount root
……
Listen 80

SSL/TLS configuration

ListenSecure 4443 # # SECURITY NOTE: you must generate the certificate and key. # Use a decrypted key here so it won't prompt for the password when # the server is restarted. # SSLCertificateFile "/vendor/opt/webbox/bin/self.crt" SSLCertificateKeyFile "/vendor/opt/webbox/bin/self.key" …… # Documents webs

借助adb工具,把拷贝整个max-server 目录整个拷贝到/vendor/opt/webbox/
adb push e:\max-server /vendor/opt/webbox/
adb shell
cd /vendor/opt/webbox/
mv web webs

执行
/vendor/opt/webbox/bin/appweb --config /vendor/opt/webbox/appweb.conf &
在这里插入图片描述

访问访问IP就可以跳转到hello Home page

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值