Live555 android NDK编译,及Live555在Android获取IP为0.0.0.0问题

1、下载live555,网上找吧
2、根目录下创建两个文件config.android-arm64和config.android-armv7
文件内容如下config.android-arm64:

NDK=/home/xx/work/ndk/android-ndk-r21e
TOOLCHAIN=$(NDK)/toolchains/llvm/prebuilt/linux-x86_64
API=27
SYSROOT=$(NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$(TOOLCHAIN)/bin/aarch64-linux-android-
DESTDIR=$(shell pwd)/../arm64-v8a
 
 
COMPILE_OPTS =         $(INCLUDES) -m64  -fPIC -fpic -I$(SYSROOT)/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DNO_OPENSSL=1 -DNO_GETIFADDRS=1 --sysroot=$(SYSROOT)
C =                     c
C_COMPILER =            $(TOOLCHAIN)/bin/aarch64-linux-android$(API)-clang
C_FLAGS =               $(COMPILE_OPTS)
CPP =                   cpp
CPLUSPLUS_COMPILER =    $(TOOLCHAIN)/bin/aarch64-linux-android$(API)-clang++
CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall -DBSD=1
OBJ =                   o
LINK =                  $(CPLUSPLUS_COMPILER) -o 
LINK_OPTS =             -static-libstdc++
CONSOLE_LINK_OPTS =     $(LINK_OPTS)
LIBRARY_LINK =          $(CROSS_PREFIX)ar rcs  
LIBRARY_LINK_OPTS =
LIB_SUFFIX =            a
LIBS_FOR_CONSOLE_APPLICATION =  
LIBS_FOR_GUI_APPLICATION =
EXE =

config.android-armv7:

NDK=/home/xx/work/ndk/android-ndk-r21e
TOOLCHAIN=$(NDK)/toolchains/llvm/prebuilt/linux-x86_64
API=eabi27
SYSROOT=$(NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot
CROSS_PREFIX=$(TOOLCHAIN)/bin/arm-linux-androideabi-
DESTDIR=$(shell pwd)/../armeabi-v7a
 
 
COMPILE_OPTS =         $(INCLUDES) -m32  -fPIC -fpic -I$(SYSROOT)/usr/local/include -I. -O2 -DSOCKLEN_T=socklen_t -D_LARGEFILE_SOURCE=1 -D_FILE_OFFSET_BITS=32 -DNO_OPENSSL=1 -DNO_GETIFADDRS=1 --sysroot=$(SYSROOT)
C =                     c
C_COMPILER =            $(TOOLCHAIN)/bin/armv7a-linux-android$(API)-clang
C_FLAGS =               $(COMPILE_OPTS)
CPP =                   cpp
CPLUSPLUS_COMPILER =    $(TOOLCHAIN)/bin/armv7a-linux-android$(API)-clang++
CPLUSPLUS_FLAGS =       $(COMPILE_OPTS) -Wall -DBSD=1
OBJ =                   o
LINK =                  $(CPLUSPLUS_COMPILER) -o 
LINK_OPTS =             -static-libstdc++
CONSOLE_LINK_OPTS =     $(LINK_OPTS)
LIBRARY_LINK =          $(CROSS_PREFIX)ar cr  
LIBRARY_LINK_OPTS =
LIB_SUFFIX =            a
LIBS_FOR_CONSOLE_APPLICATION =  
LIBS_FOR_GUI_APPLICATION =
EXE =

上面内容忘了哪个大神写的了,这里没法致敬大神了。抱歉!!!

3、执行
. genMakefiles android-arm64  生成makefile
make
make install
目录下生成对应目录。头文件和lib都在里面。
同理android-armv7
先make clean 一下,
. genMakefiles android-armv7

make
make install


完事儿。。。。但是。。。。 ip获取不到。。。。这就是拿来主义导致,不过我仍想拿来主义,不思进取。找了几天没找到,不过大神们修改的地方都一样都是GroupsockHelper.cpp里getOurIPAddresses,因为版本不一样,代码不完全一样。修改了不管用。。。。
但是我看到了一个宏定义,NO_GETIFADDRS ,貌似有不一样的逻辑,试试吧。

上面config.android-arm64和config.android-armv7
-DNO_GETIFADDRS=1 去掉,
clean 再来一遍。静态库导入项目,诶嘿好了,可以获取到了。。。为啥,管他为啥,我也不知道。

送给拿来主义的兄弟们,不要和我一样浪费时间找了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值