Android NDK 提供的交叉工具鏈手動編譯原始碼
Makefile 如下
NDK_ROOT=/root/android-ndk-r7
TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86
TOOLCHAINS_PREFIX=$(TOOLCHAINS_ROOT)/bin/arm-linux-androideabi
TOOLCHAINS_INCLUDE=$(TOOLCHAINS_ROOT)/lib/gcc/arm-linux-androideabi/4.4.3/include-fixed
PLATFORM_ROOT=$(NDK_ROOT)/platforms/android-9/arch-arm
PLATFORM_INCLUDE=$(PLATFORM_ROOT)/usr/include
PLATFORM_LIB=$(PLATFORM_ROOT)/usr/lib
FLAGS=-I$(TOOLCHAINS_INCLUDE) \
-I$(PLATFORM_INCLUDE) \
-L$(PLATFORM_LIB) \
-nostdlib \
-lgcc \
-Bdynamic \
-lc
OBJS=test.o \
$(PLATFORM_LIB)/crtbegin_dynamic.o \
$(PLATFORM_LIB)/crtend_android.o
all:
rm -rf test.o
rm -rf test
$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c test.c -o test.o
$(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o test
test.c
#include "stdio.h"
int main()
{
printf("hello world\n");
return 0;
}
說明:
Android 使用的是bionic的交叉工具鏈
Android 的交叉工具鏈c開工程式碼為:crtbegin_dynamic.o
Makefile 中的幾個傳遞給聯結器的引數不能少
-nostlib 不加會引起 crtbegin_dynamic.o: No such file: No such file or directory 錯誤
相關文章
- android NDK 交叉編譯Android編譯
- ubuntu下編譯交叉編譯工具鏈Ubuntu編譯
- 製作交叉編譯工具鏈概述編譯
- 交叉編譯工具鏈構建原理編譯
- 交叉編譯-Mac環境使用NDK編譯FFmpeg編譯Mac
- Android:JNI與NDK(二)交叉編譯與動態庫,靜態庫Android編譯
- 全網可用交叉編譯工具鏈大全編譯
- Android 基於ffmpeg開發簡易播放器 - NDK交叉編譯ffmpegAndroid播放器編譯
- 【ndk】直接使用ndk提供的arm-linux-androideabi-gcc編譯android可執行程式LinuxAndroidIdeaGC編譯行程
- 如何對 Neuron 原始碼進行交叉編譯原始碼編譯
- 編譯Android原始碼編譯Android原始碼
- 關於Gdb工具的交叉編譯、移植編譯
- libusb android ndk編譯--編譯mipsAndroid編譯
- Go語言交叉編譯工具goxGo編譯
- 交叉編譯編譯
- Android原始碼編譯--整理Android原始碼編譯
- Android 原始碼中的編譯命令Android原始碼編譯
- 交叉編譯c++給android呼叫編譯C++Android
- Android NDK 工具鏈的使用方法(Standalone Toolchain)AndroidAI
- Android原始碼閱讀-編譯8.0原始碼Android原始碼編譯
- lazarus交叉編譯編譯
- GDB交叉編譯編譯
- golang交叉編譯Golang編譯
- 自己動手編譯播放器MPC-HC的原始碼編譯播放器原始碼
- MacOS X 編譯Android原始碼Mac編譯Android原始碼
- Android FrameWork 之原始碼編譯AndroidFramework原始碼編譯
- 09_QT系統移植之交叉編譯QT原始碼和觸控原始碼QT編譯原始碼
- 用 NDK 編譯 ffmpeg 到 Android 平臺編譯Android
- 編譯器的自展和自舉、交叉編譯編譯
- Android原始碼編譯整理總結Android原始碼編譯
- android 反編譯APK取原始碼。Android編譯APK原始碼
- 交叉編譯入門編譯
- go 交叉編譯,部署Go編譯
- 淺談交叉編譯編譯
- i.MX6ULL開發板原始碼自制交叉編譯器原始碼編譯
- Go 編譯和工具鏈Go編譯
- 【轉】編譯Android系統原始碼和核心原始碼編譯Android原始碼
- Android-NDK-11-C語言編譯原理AndroidC語言編譯原理