DLNA-UPNP-Platinum编译

先放下我自己编译成功本机的环境:

windows 10下的自带的linux子系统
       Distributor ID: Ubuntu
       Description:    Ubuntu 18.04.1 LTS
       Release:        18.04
       Codename:       bionic

NDK= android-ndk-r10d

ANDROID_TOOLCHAIN    = 'arm-linux-androideabi-4.9'

错误1:

 Exception: ANDROID_NDK_ROOT environment variable not set:

详情如图:

scons: Reading SConscript files ...
********** Configuring Build Target = arm-android-linux / Release ********
Exception: ANDROID_NDK_ROOT environment variable not set:
  File "/mnt/f/proj/thirddemo/Platinum/SConstruct", line 1:
    SConscript('Build/Boot.scons')
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
    return method(*args, **kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
    call_stack[-1].globals)
  File "/mnt/f/proj/thirddemo/Platinum/Build/Boot.scons", line 71:
    SConscript('Build.scons', variant_dir='Targets/'+env['target']+'/'+build_config, exports='env', duplicate=0)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 614:
    return method(*args, **kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 551:
    return _SConscript(self.fs, *files, **subst_kw)
  File "/usr/lib/scons/SCons/Script/SConscript.py", line 256:
    call_stack[-1].globals)
  File "/mnt/f/proj/thirddemo/Platinum/Build/Build.scons", line 166:
    execfile(target_config_file)
  File "/mnt/f/proj/thirddemo/Platinum/Build/Targets/arm-android-linux/Config.scons", line 15:
    raise Exception('ANDROID_NDK_ROOT environment variable not set')

 这个错误比较简单,直接从错误信息能够判断出是环境变量没有设置,直接执行:

export ANDROID_NDK_ROOT=/mnt/f/android_ndk/android-ndk-r10d

地址是自己本机实际的ndk路径

错误2:

sh: 1: arm-linux-androideabi-g++: not found

scons: Reading SConscript files ...
********** Configuring Build Target = arm-android-linux / Release ********
Building for Android:
ANDROID_HOST_SYSTEM = linux-x86
ANDROID_TOOLCHAIN   = arm-linux-androideabi-4.4.3
ANDROID_PLATFORM    = android-9
ANDROID_ARCH        = arm
scons: done reading SConscript files.
scons: Building targets ...
arm-linux-androideabi-g++ -o Build/Targets/arm-android-linux/Release/Source/Tests/FileMediaServer/FileMediaServerTest.o -c -fno-exceptions -fno-rtti -Wall -D_REENTRANT -O3 -I/mnt/f/android_ndk/android-ndk-r14b/sources/cxx-stl/system/include --sysroot /mnt/f/android_ndk/android-ndk-r14b/platforms/android-9/arch-arm -msoft-float -fpic -mthumb-interwork -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -D_REENTRANT -DNDEBUG -DNPT_CONFIG_ENABLE_LOGGING -DPLATINUM_UPNP_SPECS_STRICT -DANDROID -DNPT_CONFIG_HAVE_SYSTEM_LOG_CONFIG -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -ISource/Devices/MediaServer -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -ISource/Devices/MediaServer -ISource/Devices/MediaRenderer -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -ISource/Devices/MediaServer -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -IThirdParty/Neptune/Source/Core -IThirdParty/Neptune/Source/Data/TLS -ISource/Core -ISource/Extras -ISource/Platinum -ISource/Devices/MediaServer -ISource/Devices/MediaRenderer -ISource/Devices/MediaConnect Source/Tests/FileMediaServer/FileMediaServerTest.cpp
sh: 1: arm-linux-androideabi-g++: not found
scons: *** [Build/Targets/arm-android-linux/Release/Source/Tests/FileMediaServer/FileMediaServerTest.o] Error 127

什么?编译工具竟然找不到,找了一些参考资料发现是机器架构的指定问题,修改Build/Targets/arm-android-linux/Config.scons即可,‘-’号和‘+’号是我本地的git修改记录

  PLATFORM_TO_TARGET_MAP = {
-       'linux-i386' : 'linux-x86',
-       'linux2'     : 'linux-x86',
+       'linux-i386' : 'linux-x86_64',
+       'linux2'     : 'linux-x86_64',
        'win32'      : 'windows',
        'cygwin'     : 'windows',
        'darwin'     : 'darwin-x86'

问题3:

aarch64-linux-android-g++: error: unrecognized command line option '-msoft-float'
aarch64-linux-android-g++: error: unrecognized command line option '-mthumb-interwork'

不识别的命令

解决办法:修改Build/Targets/arm-android-linux/Config.scons交叉编译工具的版本即可

ANDROID_TOOLCHAIN    = 'arm-linux-androideabi-4.9 

问题4:

In file included from Source/Core/PltUPnP.h:45:0,
                 from Source/Tests/FileMediaServer/FileMediaServerTest.cpp:39:
Source/Core/PltTaskManager.h:45:21: fatal error: Neptune.h: No such file or directory
 #include "Neptune.h"

直接cd进Neptune,发现竟然是空的(lll¬ω¬),只能自己下载Neptune库了,下载完毕,将Neptune的Source和ThirdParty拷贝至Neptune中即可

这时按照官网执行命令即可:

> scons target=arm-android-linux build_config=Release
> cd Source/Platform/Android/module/platinum
> ndk-build NDK_DEBUG=0

成功编译:

参考文章1:https://www.jianshu.com/p/0d076700dbd8

参考文章2:https://segmentfault.com/q/1010000002949387

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值