[root@localhost mongoose-android-x86]# pwd
/opt/android-on-linux/mongoose/mongoose-android-x86
[root@localhost mongoose-android-x86]# ls
CONTRIBUTING.md docs examples jni LICENSE mongoose.c mongoose.h README.md
[root@localhost mongoose-android-x86]# gedit examples/examples.mk
//----------------------------------------------------------
#NDK_ROOT = /opt/android-on-linux/android-ndk-r12
#SYSROOT = $(NDK_ROOT)/platforms/android-23/arch-x86_64/
#CFLAGS = --sysroot=$(SYSROOT) --pipe -I$(NDK_ROOT)/sources/cxx-stl/stlport/stlport
#CFLAGS += -I$(NDK_ROOT)/platforms/android-23/arch-x86_64/usr/include
#CFLAGS += -I$(NDK_ROOT)/toolchains/x86_64-4.9/prebuilt/linux-x86_64/include
#CFLAGS += -I$(NDK_ROOT)/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/include-fixed
#CFLAGS += -I$(NDK_ROOT)/toolchains/x86_64-4.9/prebuilt/linux-x86_64/lib/gcc/x86_64-linux-android/4.9.x/include
#CPATH = /opt/android-on-linux/android-ndk-r12/toolchains/x86_64-4.9/prebuilt/linux-x86_64/bin/
#CFLAGS += -g -W -Wall -I../.. -Wno-unused-function $(CFLAGS_EXTRA) $(MODULE_CFLAGS)
#CFLAGS += -Wl,-rpath-link=$(NDK_ROOT)/platforms/android-23/arch-x86_64/usr/lib/
#CFLAGS += -L$(NDK_ROOT)/platforms/android-23/arch-x86_64/usr/lib/
# refer to http://bodudu.org/2011/04/porting-mongoose-web-server-to-android/
NDK_HOME = /opt/android-on-linux/android-ndk-r12
TOOLCHAIN_HOME = $(NDK_HOME)/toolchains/x86_64-4.9/prebuilt/linux-x86_64
CROSS_COMPILE = $(TOOLCHAIN_HOME)/bin/x86_64-linux-android-
SYSROOT = $(NDK_HOME)/platforms/android-23/arch-x86_64
CC = $(CROSS_COMPILE)gcc
NDK_LIB = $(SYSROOT)/usr/lib
#error: only position independent executables (PIE) are supported. (-fPIE)
CFLAGS += -g -W -fPIE -Wall -I../.. -Wno-unused-function $(CFLAGS_EXTRA) $(MODULE_CFLAGS)
#CCFLAGS=-MMD -MP -fpic -ffunction-sections -funwind-tables -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5E__ -D__ARM_ARCH_5TE__ -Wno-psabi -march=armv5te -mtune=xscale -msoft-float -mthumb -Os -fomit-frame-pointer -fno-strict-aliasing -finline-limit=64 -DANDROID -Wa,–noexecstack -g
#CCFLAGS=
INCDIRS = -I$(SYSROOT)/usr/include
LDFLAGS = --sysroot=$(SYSROOT) -L$(NDK_LIB)
#LDFLAGS += -Wl,–gc-sections -Wl,-z,nocopyreloc -Wl,–no-undefined -Wl,-z,noexecstack -Wl,-rpath-link=$(SYSROOT)/usr/lib
LDFLAGS += -Wl,-rpath-link=$(SYSROOT)/usr/lib
#error: only position independent executables (PIE) are supported. (-pie)
LDFLAGS += -ldl -fPIE -pie
SOURCES = $(PROG).c ../../mongoose.c
all: $(PROG)
ifeq ($(OS), Windows_NT)
# TODO(alashkin): enable SSL in Windows
CFLAGS += -lws2_32
else
ifeq ($(SSL_LIB),openssl)
CFLAGS += -DMG_ENABLE_SSL -lssl -lcrypto
else ifeq ($(SSL_LIB), krypton)
CFLAGS += -DMG_ENABLE_SSL -DMG_DISABLE_PFS ../../../krypton/krypton.c
endif
# CFLAGS += -lpthread
CFLAGS +=
endif
ifeq ($(JS), yes)
V7_PATH = ../../deps/v7
CFLAGS_EXTRA += -DMG_ENABLE_JAVASCRIPT -I $(V7_PATH) $(V7_PATH)/v7.c
endif
$(PROG): $(SOURCES)
$(CC) $(SOURCES) -o $@ $(CFLAGS) $(INCDIRS) $(LDFLAGS)
$(PROG).exe: $(SOURCES)
cl $(SOURCES) /I../.. /MD /Fe$@
clean:
rm -rf *.gc* *.dSYM *.exe *.obj *.o a.out $(PROG)
//----------------------------------------------------------
[root@localhost mongoose-android-x86]# gedit examples/simplest_web_server/simplest_web_server.c
//static const char *s_http_port = "8000";
static const char *s_http_port = "80";
[root@localhost mongoose-android-x86]# gedit examples/websocket_chat/index.html
//var ws = new WebSocket('ws://' + location.host + '/ws');
var ws = new WebSocket('ws://' + location.host + ':8000');
[root@localhost mongoose-android-x86]# gedit examples/websocket_chat/websocket_chat.c
//if (c == nc) continue; /* Don't send to the sender. */
[root@localhost mongoose-android-x86]# cd examples/
[root@localhost examples]# cd websocket_chat
[root@localhost websocket_chat]# make
[root@localhost websocket_chat]# cd ../simplest_web_server/
[root@localhost simplest_web_server]# make
[root@localhost examples]# mkdir /opt/share-vm/fedora23server-share/webserver
[root@localhost examples]#
cp simplest_web_server/simplest_web_server /opt/share-vm/fedora23server-share/webserver
cp websocket_chat/websocket_chat /opt/share-vm/fedora23server-share/webserver
cp websocket_chat/index.html /opt/share-vm/fedora23server-share/webserver
[root@localhost examples]# adb push /opt/share-vm/fedora23server-share/webserver /system/xbin/quagga/
[root@localhost examples]# adb shell
# ./simplest_web_server &
# ./websocket_chat &
http://localhost
------------------------------------
All is OK
------------------------------------
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通