WSL 编译android源码,win10 wsl 编译 android 上运行的 带rtmp模块 nginx

1. win10 wsl adbhtml

下载ndk15clinux

sudo vi /etc/profileandroid

export PATH="$ANDROID_NDK:$PATH"nginx

source /etc/profilegolang

# 安装android-toolsshell

sudo apt install adbwindows

# 默认安装位置为 /usr/lib/android-sdk/platform-tools/app

# 下载最新版ide

实际看windows android studio platform-tools 版本 r29.0.5

实际下载地址

# 解压缩

unzip ./platform-tools-latest-linux.zip

# 替换

sudo cp -r platform-tools /usr/lib/android-sdk/platform-tools

adb version

Android Debug Bridge version 1.0.41

Version 29.0.5-5949299

2. nginx 编译

直接参考下面文章 按最后的文件列表下载文件放在一个目录

2.1 运行

# 第一个句点不能省略,用于保留脚本之间的环境变量

. ./make_openssl.sh

2.2 修改make_nginx.sh

注掉make_nginx.sh 里 ./configure 及其如下命令行

运行 . ./make_nginx.sh

编辑auto/cc/name文件,将21行的“exit 1”注释掉(令测试程序不会报错)。

编译错误:

src/os/unix/ngx_files.c:885:21: error: unused variable 'fs' [-Werror=unused-variable]

struct statvfs fs;

解决src/os/unix/ngx_files.c加

#include

加入变量

CROSS_COMPILE_GCC=/home/sheng/ndk/android-ndk-r15c/toolchains/arm-

linux-androideabi-4.9/prebuilt/linux-x86_64/bin/arm-linux-androideabi-gcc

RTMP_MODULE_DIR=/home/sheng/nginx-with-rtmp/nginx-rtmp-module

按下面一条条运行

./configure \

--crossbuild=android-arm \

--prefix=/sdcard/nginx \

--with-http_ssl_module \

--with-openssl=$OPENSSL_DIR \

--without-http_gzip_module \

--without-pcre \

--without-http_rewrite_module \

--without-http_proxy_module \

--without-http_userid_module \

--without-http_upstream_zone_module \

--without-stream_upstream_zone_module \

--add-module=$RTMP_MODULE_DIR \

--with-cc=$CROSS_COMPILE_GCC \

--with-cc-opt="--sysroot=$ANDROID_SYSROOT -Wno-sign-compare -pie -fPIE" \

--with-ld-opt="--sysroot=$ANDROID_SYSROOT -pie -fPIE"

make -j8

sudo make install -j8

编译好修改下面

vi nginx/conf/nginx.conf

rtmp {

17 server {

18 listen 1935;

19 application myapp {

20 live on;

21 drop_idle_publisher 5s;

22 }

23 }

24 }

42 #gzip on;

43

44 server {

45 listen 8081;

46 server_name localhost;

85 #location ~ /\.ht {

86 # deny all;

87 #}

88

89 location /stat {

90 rtmp_stat all;

91 rtmp_stat_stylesheet stat.xsl;

92 }

93 location /stat.xsl {

94 root /sdcard/nginx-rtmp-module/;

95 }

96 location /control {

97 rtmp_control all;

98 }

99 location /rtmp-publisher {

100 root /sdcard/nginx-rtmp-module/test;

101 }

102 location / {

103 root /sdcard/nginx-rtmp-module/test/www;

104 }

105 }

52 location /netold {

53 root html;

54 index index.html index.htm;

55 }

改权限

sudo chmod 777 /sdcard/nginx/sbin/nginx

把编译好修改好文件拷到手机

adb push -r /sdcard/nginx /sdcard

adb push nginx-rtmp-module /sdcard/nginx-rtmp-module

手机里shell运行

adb shell

cp /sdcard/nginx/sbin/nginx /data/local/tmp/nginx/sbin

运行nginx

./data/local/tmp/nginx/sbin/nginx

访问网页成功

http://192.168.123.20:8081

关闭nginx

./nginx -s stop

参考《交叉编译带RTMP模块的Nginx到Android》

你可能感兴趣的:(WSL,编译android源码)