首页 > 其他分享 >编译Platinum SDK库

编译Platinum SDK库

时间:2023-12-12 09:02:45浏览次数:24  
标签:Platinum NDK scons ndk 编译 Android SDK

Platinum SDK是一款开源的库,方便用户在各种平台上快算实现DLNA Render功能,本文章主要介绍,使用Android NDK编译Platinum SDK,方便后续在Android平台上使用。

一.Platinum 源代码下载地址:

https://github.com/plutinosoft/Platinum

二.编译环境准备:

Platinum官方的Android编译介绍只有如下几句简单介绍 ,在执行下面命令之前,需要先配置编译环境。我这边使用的mac OS。

1.下载Android NDK ,配置ANDROID_NDK_ROOT目录。

执行vi ~/.bash_profile,打开文件

添加export ANDROID_NDK_ROOT=/Users/xxx/Downloads/Code/tool/android-ndk-r13b 到文件最后.(这里的ndk版本可以替换为其他的,“xxx”代表的你的Mac用户名)

保存,退出后,执行source .bash_profile。

2.安装scons。

执行brew install scons 安装scons(brew如果未安装,请自行安装)

三、开始生成编译的Android.mk

先进到Platinum 根目录下,执行如下指令

scons target=arm-android-linux build_config=Release
这时可能会遇到各种问题,需要一步步解决,每解决一个问题就要重新执行上边的scons指令。

1.提示print格式不对,找到如下图的两个文件,用文本编辑器修改print为正确格式print(..)

2.提示:AttributeError: 'SConsEnvironment' object has no attribute 'has_key'。

同样用文本编辑器打开上图中的Config.scons文件,找到所有的包含has_key的地方

 将if env.has_key('android_host_system') 修改为if  'android_host_system' in env //在python3上废除了has_key方法。

3.提示sh: arm-linux-androideabi-g++: command not found。

将上图中Config.scons文件的,ANDROID_CROSS_PREFIX = 'arm-linux-androideabi',修改为绝对路径ANDROID_CROSS_PREFIX = os.path.join(ANDROID_NDK_ROOT,'toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi')

4.提示Source/Core/PltTaskManager.h:45:21: fatal error: Neptune.h: No such file or directory

这时进到ThirdParty/Neptune/ 目录会发现目录是空的,需要单独下载Neptune相关源码,可退出到ThirdParty目录下,执行git clone https://github.com/plutinosoft/Neptune.git。下载完如下图所示

5.以上4个问题解决后,应该就可以看到,scons: done building targets.指令,标明这步操作成功。

另外,这中间可能会存在系统禁止使用ndk中的各种可执行程序的弹框,只要进到系统设置的隐私与安全性中点击'仍然允许'即可。(仍然允许提示会在下图中弹出)

 四。开始编译SDK

进到Source/Platform/Android/module/platinum目录下,执行

/Users/xxx/Downloads/Code/tool/android-ndk-r13b/ndk-build NDK_DEBUG=0.

如果是intel芯片的mac的话,

应该会遇到以下问题:

解决方法:

找到Source/Platform/Android/module/platinum/jni/Android.mk文件 ,将所有的$(PLT_ROOT)/../Neptune/Source/Core更换成$(PLT_ROOT)/ThirdParty/Neptune/Source/Core。

之后再次编译,正常就可以编译通过,会在Source/Platform/Android/module/platinum/lib生成对应的so库。

但如果使用苹果芯片的mac还可能会先遇到以下问题,

1.提示ERROR: Unknown host CPU architecture: arm64

用文本编辑器打开/Users/xxx/Downloads/Code/tool/android-ndk-r13b/ndk-build文件,将

$DIR/build/ndk-build "$@"修改为arch -x86_64 /bin/bash $DIR/build/ndk-build "$@"

2.提示Android NDK: Host 'awk' tool is outdated. Please define NDK_HOST_AWK to point to Gawk or Nawk !

找到/Users/xxx/Downloads/Code/tool/android-ndk-r13b/prebuilt/darwin-x86_64/bin中的awk文件,将其修改名称或者直接删除。

标签:Platinum,NDK,scons,ndk,编译,Android,SDK
From: https://www.cnblogs.com/kn-zheng/p/17895984.html

相关文章

  • Python编译升级3.7.x
    CentOS7自带的Python为3.6.x,但因项目需要,要升级到3.7.x,记录遇到的一些问题。Python3.7.x需要先升级OpenSSL到1.1.x后的版本,否则会报下面的错误WARNING:pipisconfiguredwithlocationsthatrequireTLS/SSL,howeverthesslmoduleinPythonisnotavailable.1.Ope......
  • 智能监控平台/视频共享融合系统EasyCVR接入大华SDK后只有一路通道可云台控制该如何解
    TSINGSEE青犀视频监控汇聚平台EasyCVR可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备传统安防视频监控的能力,也具备接入AI智能分析的能力,包括对人、车、......
  • GCC源码编译安装升级
    gcc官网:​​https://gcc.gnu.org/​​1.安装系统默认gcc(有则忽略)yuminstall-ygccgcc-c++make2.下载高版本gcc源码包下载地址:​​https://ftp.gnu.org/gnu/gcc/​wgethttps://ftp.gnu.org/gnu/gcc/gcc-7.5.0/gcc-7.5.0.tar.gz3.源码编译安装#解压tar-xvfgcc......
  • arcgis 最全SDK下载
    一、产品介绍:作为开发人员,您可以在自己的制图应用程序中使用我们的高级制图服务,也可以灵活使用ArcGIS系统来满足组织的特定需求。解决方案合作伙伴、集成商和Esri自己的开发人员使用ArcGIS应用程序编程接口(API)和软件开发工具包(SDK)来开发启用位置的产品、解决方案,......
  • VS2022中ArcGIS Pro SDK for .NET安装和卸载指南
    VS2022中ArcGISProSDKfor.NET安装和卸载指南下载:资源下载安裝ArcGISProSDKfor.NET升级ArcGISProSDKfor.NET卸载ArcGISProSDKfor.NET使用专用图库分发适用于.NET的ArcGISProSDK概述ArcGISProSDKfor.NET提供以下3个VisualStudio扩展......
  • VS 编译报错,未能找到 "XXX" 的一部分
    出现这个报错,最大的可能是路径太长了,windows 路径的默认最大长度是260 个字符,路径超过此长度就会报错解决方法:启用长路径找到注册表Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem\LongPathsEnabled(Type:REG_DWORD)该项的值设置为1就可以了......
  • Qt/C++音视频开发59-使用mdk-sdk组件/原qtav作者力作/性能凶残/超级跨平台
    一、前言最近一个月一直在研究mdk-sdk音视频组件,这个组件是原qtav作者的最新力作,提供了各种各样的示例demo,不仅限于支持C++,其他各种比如java/flutter/web/android等全部支持,性能上也是杠杠的,目前大概是在V0.23版本,大部分软件发布基本上都是在1.0版本才是比较稳定的,不过目前用下来......
  • cpp的编译过程
    C++程序的编译过程通常分为四个主要步骤:预处理(Preprocessing):这个阶段主要处理源代码文件中的以“#”开头的预编译指令4。例如,对宏进行展开,对include的文件进行展开,处理条件编译选项判断,清理注释等。预处理后生成的文件通常以.i或.ii结尾2。编译(Compilation):编译阶段使用预......
  • 基于Html+腾讯云播SDK开发的m3u8播放器
    周末业余时间在家无事,学习了一下腾讯的云播放sdk,并制作了一个小demo(m3u8播放器),该在线工具是基于腾讯的云播sdk开发的,云播sdk非常牛,可以支持多种播放格式。预览地址m3u8player.org源码地址https://github.com/geeeeeeeek/m3u8player开发步骤第一步:集成播放器SDK:播放器SDK......
  • java-打包编译常用命令
    java-打包编译常用命令 1.maven预编译(打包检查异常) 在上到测试环境或者生产环境之前,先在本地打包检查异常: mvncleaninstall-Dmaven.test.skip=true-X  2.maven打包 一般用IDEA上的maven工具按钮: 如果打包失败则可以用下面的命令: mvncleaninsta......