android通用編譯指令碼
# compile-common-android.sh
#! /usr/bin/env bash # # Copyright (C) 2013-2014 Zhang Rui <[email protected]> # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # #---------- UNI_BUILD_ROOT=`pwd` FF_TARGET=$1 set -e set +x FF_ACT_ARCHS_64="armv5 armv7a arm64 x86 x86_64" FF_ACT_ARCHS_ALL=$FF_ACT_ARCHS_64 echo_archs() { echo "====================" echo "[*] check archs" echo "====================" echo "FF_ALL_ARCHS = $FF_ACT_ARCHS_ALL" echo "FF_ACT_ARCHS = $*" echo "" } echo_usage() { echo "Usage:" echo " compile-common-android.sh armv5|armv7a|arm64|x86|x86_64" echo " compile-common-android.sh all" echo " compile-common-android.sh clean" exit 1 } #---------- case "$FF_TARGET" in "") echo_archs armv7a sh do-compile-common-android.sh armv7a ;; armv5|armv7a|arm64|x86|x86_64) echo_archs $FF_TARGET sh do-compile-common-android.sh $FF_TARGET ;; all) echo_archs $FF_ACT_ARCHS_64 for ARCH in $FF_ACT_ARCHS_64 do sh do-compile-common-android.sh $ARCH done ;; clean) make clean ;; *) echo_usage exit 1 ;; esac
#do-compile-common-android.sh
#! /usr/bin/env bash # # Copyright (C) 2014 Miguel Botón <[email protected]> # Copyright (C) 2014 Zhang Rui <[email protected]> # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # #-------------------- set -e if [ -z "$ANDROID_NDK" ]; then echo "You must define ANDROID_NDK before starting." echo "They must point to your NDK directories.\n" exit 1 fi #-------------------- # common defines FF_ARCH=$1 if [ -z "$FF_ARCH" ]; then echo "You must specific an architecture 'arm, armv7a, x86, ...'.\n" exit 1 fi FF_BUILD_ROOT=`pwd` FF_ANDROID_PLATFORM=android-9 FF_BUILD_NAME= FF_CROSS_PREFIX= FF_CFG_FLAGS= FF_PLATFORM_CFG_FLAGS= FF_EXTRA_CFLAGS= FF_EXTRA_LDFLAGS= #-----detect--------- UNAME_S=$(uname -s) UNAME_SM=$(uname -sm) echo "build on $UNAME_SM" echo "ANDROID_NDK=$ANDROID_NDK" if [ -z "$ANDROID_NDK" ]; then echo "You must define ANDROID_NDK before starting." echo "They must point to your NDK directories." echo "" exit 1 fi # try to detect NDK version export IJK_GCC_VER=4.9 export IJK_GCC_64_VER=4.9 export IJK_MAKE_TOOLCHAIN_FLAGS= export IJK_MAKE_FLAG= export IJK_NDK_REL=$(grep -o '^r[0-9]*.*' $ANDROID_NDK/RELEASE.TXT 2>/dev/null | sed 's/[[:space:]]*//g' | cut -b2-) case "$IJK_NDK_REL" in 10e*) # we don't use 4.4.3 because it doesn't handle threads correctly. if test -d ${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.8 # if gcc 4.8 is present, it's there for all the archs (x86, mips, arm) then echo "NDKr$IJK_NDK_REL detected" case "$UNAME_S" in Darwin) export IJK_MAKE_TOOLCHAIN_FLAGS="$IJK_MAKE_TOOLCHAIN_FLAGS --system=darwin-x86_64" ;; CYGWIN_NT-*) export IJK_MAKE_TOOLCHAIN_FLAGS="$IJK_MAKE_TOOLCHAIN_FLAGS --system=windows-x86_64" ;; esac else echo "You need the NDKr10e or later" exit 1 fi ;; *) IJK_NDK_REL=$(grep -o '^Pkg\.Revision.*=[0-9]*.*' $ANDROID_NDK/source.properties 2>/dev/null | sed 's/[[:space:]]*//g' | cut -d "=" -f 2) echo "IJK_NDK_REL=$IJK_NDK_REL" case "$IJK_NDK_REL" in 11|12*) if test -d ${ANDROID_NDK}/toolchains/arm-linux-androideabi-4.9 then echo "NDKr$IJK_NDK_REL detected" else echo "You need the NDKr10e or later" exit 1 fi ;; *) echo "You need the NDKr10e or later" exit 1 ;; esac ;; esac case "$UNAME_S" in Darwin) export IJK_MAKE_FLAG=-j`sysctl -n machdep.cpu.thread_count` ;; CYGWIN_NT-*) IJK_WIN_TEMP="$(cygpath -am /tmp)" export TEMPDIR=$IJK_WIN_TEMP/ echo "Cygwin temp prefix=$IJK_WIN_TEMP/" ;; esac #-------------------- echo "" echo "--------------------" echo "[*] make NDK standalone toolchain" echo "--------------------" FF_MAKE_TOOLCHAIN_FLAGS=$IJK_MAKE_TOOLCHAIN_FLAGS FF_MAKE_FLAGS=$IJK_MAKE_FLAG FF_GCC_VER=$IJK_GCC_VER FF_GCC_64_VER=$IJK_GCC_64_VER #----- armv7a begin ----- if [ "$FF_ARCH" = "armv7a" ]; then FF_BUILD_NAME=common-android-armv7a FF_CROSS_PREFIX=arm-linux-androideabi FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_VER} FF_PLATFORM_CFG_FLAGS="android-armv7" elif [ "$FF_ARCH" = "armv5" ]; then FF_BUILD_NAME=common-android-armv5 FF_CROSS_PREFIX=arm-linux-androideabi FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_VER} FF_PLATFORM_CFG_FLAGS="android" elif [ "$FF_ARCH" = "x86" ]; then FF_BUILD_NAME=common-android-x86 FF_CROSS_PREFIX=i686-linux-android FF_TOOLCHAIN_NAME=x86-${FF_GCC_VER} FF_PLATFORM_CFG_FLAGS="android-x86" elif [ "$FF_ARCH" = "x86_64" ]; then FF_ANDROID_PLATFORM=android-21 FF_BUILD_NAME=common-android-x86_64 FF_CROSS_PREFIX=x86_64-linux-android FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_64_VER} FF_PLATFORM_CFG_FLAGS="linux-x86_64" elif [ "$FF_ARCH" = "arm64" ]; then FF_ANDROID_PLATFORM=android-21 FF_BUILD_NAME=common-android-arm64 FF_CROSS_PREFIX=aarch64-linux-android FF_TOOLCHAIN_NAME=${FF_CROSS_PREFIX}-${FF_GCC_64_VER} FF_PLATFORM_CFG_FLAGS="linux-aarch64" else echo "unknown architecture $FF_ARCH"; exit 1 fi FF_TOOLCHAIN_PATH=$FF_BUILD_ROOT/$FF_BUILD_NAME/toolchain FF_SYSROOT=$FF_TOOLCHAIN_PATH/sysroot FF_PREFIX=$FF_BUILD_ROOT/$FF_BUILD_NAME/ mkdir -p $FF_PREFIX mkdir -p $FF_SYSROOT #-------------------- echo "" echo "--------------------" echo "[*] make NDK standalone toolchain" echo "--------------------" FF_MAKE_TOOLCHAIN_FLAGS=$IJK_MAKE_TOOLCHAIN_FLAGS FF_MAKE_FLAGS=$IJK_MAKE_FLAG FF_MAKE_TOOLCHAIN_FLAGS="$FF_MAKE_TOOLCHAIN_FLAGS --install-dir=$FF_TOOLCHAIN_PATH" FF_TOOLCHAIN_TOUCH="$FF_TOOLCHAIN_PATH/touch" if [ ! -f "$FF_TOOLCHAIN_TOUCH" ]; then $ANDROID_NDK/build/tools/make-standalone-toolchain.sh \ $FF_MAKE_TOOLCHAIN_FLAGS \ --platform=$FF_ANDROID_PLATFORM \ --toolchain=$FF_TOOLCHAIN_NAME touch $FF_TOOLCHAIN_TOUCH; fi #-------------------- echo "" echo "--------------------" echo "[*] check fdkaac env" echo "--------------------" export PATH=$FF_TOOLCHAIN_PATH/bin:$PATH export COMMON_FF_CFG_FLAGS= FF_CFG_FLAGS="$FF_CFG_FLAGS $COMMON_FF_CFG_FLAGS" #-------------------- # Standard options: FF_CFG_FLAGS="$FF_CFG_FLAGS --prefix=$FF_PREFIX" FF_CFG_FLAGS="$FF_CFG_FLAGS --host=${FF_CROSS_PREFIX}" #-------------------- echo "" echo "--------------------" echo "[*] configurate " echo "--------------------" echo "./Configure $FF_CFG_FLAGS" #此處可以修改編譯選項 ./Configure $FF_CFG_FLAGS # --extra-cflags="$FF_CFLAGS $FF_EXTRA_CFLAGS" \ # --extra-ldflags="$FF_EXTRA_LDFLAGS" #-------------------- make make install rm -rf $FF_TOOLCHAIN_PATH
相關推薦
android通用編譯指令碼
# compile-common-android.sh #! /usr/bin/env bash # # Copyright (C) 2013-2014 Zhang Rui <[email protected]> # # Licensed under
分享一個Android平臺編譯指令碼
先說明使用方法 1:將內容copy到一個檔案,如檔名為mk,將此檔案加上可執行許可權 chmod +x mk 2:將mk檔案放於android頂層目錄 3:執行./mk會有提示如下: ^.^ example: ./mk full_g30p_5u-eng ^.^ exampl
Android 編譯指令碼解析 findleaves.py 解讀
最近在分析Android編譯,加上之前確實寫過關於findleaves.py的應用,今天找時間分析一下原理,也算是學習 #!/usr/bin/env python # # Copyright (C) 2009 The Android Open Source Project # # L
【android】Android平臺通用編譯環境
Date: 2018.9.30 1、arm交叉編譯工具鏈使用 arm-linux-androideabi-gcc 2、android ndk下載: 3、Android平臺通用編譯環境 #!/bin/
Gradle Android最新自動化編譯指令碼教程(提供demo原始碼)
一、前言Gradle 是以 Groovy 語言為基礎,面向Java應用為主。基於DSL(領域特定語言)語法的自動化構建工具。上面這句話我覺得寫得很官方,大家只需知道Gradle可以用來android開發中進行多個專案依賴的自動化編譯指令碼,知道這點也就知道我們使用它的目的;為
指定Android Studio編譯工程時的源文件編碼
javac Coding 設置 odin images utf8編碼 androi mage nco 統一設置為UTF8編碼在工程的根目錄下的build.gradle文件中,添加定義。tasks. withType(JavaCompile) { options.enc
android反編譯odex文件
lis 目錄 trac 依賴 andro xheditor span sys 放置 關於android的反編譯工具,相信大家並不陌生 如APK-TOOL,dex2jar APK-TOOL 用於反編譯出布局文件 下載地址http://code.google.co
cocos2d-x 移植到android中編譯的一些問題:fatal error: Box2D/Box2D.h: No such file or directory"
cocos2 app nal get dsc err 2dx ros blue 1、fatal error: Box2D/Box2D.h: No such file or directory" 須要加入box2d庫的支持,改動android.mk
android ndk 編譯的時候指令集的選取
文章 span tag androi ndk 有時 oca class word android ndk在編譯的時候默認生成的是thumb指令(拇指)不是arm(手臂)指令,但是有時候在看反匯編的時候,不太熟悉thumb指令或者說thumb指令看起來更費勁,需要生成arm指
Android 關於編譯ijkplayer下的so經驗分享
本地 pat 經驗 變量 一次 公司 https 調研 vmw 前言:公司最近需要做直播方面的技術調研,所以需要去研究播放器相關的技術;剛好本人github上收藏了ijkplayer,之前一直沒有研究過,現在剛好clone下來研究研究。 我先在Windows安裝c
【Android】Ubuntu 16.04搭建Android開發編譯環境
jdk8 per 參考 prot google官網 markdown ins 由於 log 一. 通用Android環境和工具配置 1. 系統更新升級 sudo apt-get update sudo apt-get upgrade 2. 配置ntlmaps代理上網環境
【Cocos2d-x 3.0】遊戲開發之android交叉編譯
plain edit 100% b2c 令行 sdk 自己的路 smi bin 作者:Senlern 轉載請註明,原文鏈接:http://blog.csdn.net/zhang429350061/article/details/37959489 在上
Android系統編譯出錯
android 編譯出錯在Android7.1編譯過程中出現如下錯誤:Starting build with ninjaninja: Entering directory `.‘ [ 0% 8/30301] Ensure Jack server is installed and startedJack
android studio 編譯C文件出錯
android c1、還要在gradle.properties裏面加上這麽一句話:android.useDeprecatedNdk=true 2、打開app Module的build.gradle文件,在defaultConfig節點裏添加以下代碼 註意這裏的moduleName,是我們在之前自己編寫的類裏面
如何為Android平臺編譯 opencv3 和 opencv_contrib (Linux)
gre inter jni fuzzy dnn letter ott esc lis p { margin-bottom: 0.1in; direction: ltr; color: rgb(0, 0, 10); line-height: 120%; text-align:
OSG for android的編譯總結
display article 原因 mat cygwin 動態鏈接 cep evel arr 最近對OSG進行了android下的編譯。簡單總結一下: 0.介紹下環境:WIN7 64位 + cygwin32位 + OSG3.2.0 1.首先介紹幾篇博文,參考了不少,但並沒
Android Studio編譯的時候提示Gradle無法下載的解決方案
target 單擊 拷貝 比較 file 版本 編譯 blank 方案 首先,打開android studio項目 找到項目目錄gradle\wrapper\gradle-wrapper.properties這個文件。內容如下:#Wed Apr 10 15:27:10 PD
基於 MVP 架構使用Android通用開發框架快速開發微博項目實戰
安卓 MVP 課程目標:基於 MVP 架構使用Android通用開發框架快速開發微博項目實戰適應人群:適合大學生和初中級android開發工程師,可以系統化的微博類APP的開發,系統化掌握商業化項目的開發。* 不斷豐富自己的知識,做有“錢”途的Android工程師課程簡介:《基於 MVP 架構使用An
加速Android Studio編譯速度
strip roi cache code mage -i ide wid 著作權 一、修改運行內存 進入項目,菜單欄-help-Edit Custom VM Option Paste_Image.png 添加或修改為: -Xms
android反編譯
adbc nsh cef vfs weixin 反編譯 target get blank 轉自這位老鐵:https://www.jianshu.com/p/f5fadbc7d2f8 https://mp.weixin.qq.com/s?__biz=MzA5MzI3NjE2M