- 安装ndk
从安卓官网下载,ndk,双击解压到当前文件夹。建议想装在那个文件夹便解压到那个文件夹,而且文件夹的路径中不要有空格,因为gcc编译的时候会把空格前后两个字符串作为两个文件夹来对待。
- 使用gcc手动编译
使用gcc编译程序需要先编写makefile文件,然后通过gcc make工具进行编译,makefile文件内容如下:
1 NDK_ROOT=C:/android-ndk-r10d 2 TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux-androideabi-4.9/prebuilt/windows 3 TOOLCHAINS_PREFIX=$(TOOLCHAINS_ROOT)/bin/arm-linux-androideabi 4 TOOLCHAINS_INCLUDE=$(TOOLCHAINS_ROOT)/lib/gcc/arm-linux-androideabi/4.9/include-fixed 5 PLATFORM_ROOT=$(NDK_ROOT)/platforms/android-21/arch-arm 6 PLATFORM_INCLUDE=$(PLATFORM_ROOT)/usr/include 7 PLATFORM_LIB=$(PLATFORM_ROOT)/usr/lib 8 MODULE_NAME=hello 9 RM=del 10 FLAGS=-I$(TOOLCHAINS_INCLUDE)11 -I$(PLATFORM_INCLUDE)12 -L$(PLATFORM_LIB)13 -nostdlib14 -lgcc15 -Bdynamic16 -lc 17 OBJS=$(MODULE_NAME).o18 $(PLATFORM_LIB)/crtbegin_dynamic.o19 $(PLATFORM_LIB)/crtend_android.o 20 21 all: 22 $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c $(MODULE_NAME).c -o $(MODULE_NAME).o 23 $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o $(MODULE_NAME) 24 clean: 25 $(RM) *.o 26 install: 27 adb push $(MODULE_NAME) /data/local/tmp 28 adb shell chmod 755 /data/local/tmp/$(MODULE_NAME)
其中gcc make工具位于..\android-ndk-r10d\prebuilt\windows\bin下,此目录需要加入到系统或临时的PATH环境变量中,然后将hello.c于makefile文件放到一个目录中,开启虚拟机,然后依次执行以下命令:
make make install adb shell /data/local/tmp/hello
便会看到熟悉的“hello world!!!”输出了。
makefile中的I和L要记得分清,我没注意到,结果编译的时候总是报错。
时间: 2024-10-12 19:57:54