你的位置:首页 > 操作系统

[操作系统]ndk开发之编译安卓c/c++程序


  • 安装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=del10 FLAGS=-I$(TOOLCHAINS_INCLUDE)\11   -I$(PLATFORM_INCLUDE)\12   -L$(PLATFORM_LIB)\13   -nostdlib\14   -lgcc\15   -Bdynamic\16   -lc17 OBJS=$(MODULE_NAME).o\18   $(PLATFORM_LIB)/crtbegin_dynamic.o\19   $(PLATFORM_LIB)/crtend_android.o20 21 all:22   $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) -c $(MODULE_NAME).c -o $(MODULE_NAME).o23   $(TOOLCHAINS_PREFIX)-gcc $(FLAGS) $(OBJS) -o $(MODULE_NAME)24 clean:25   $(RM) *.o26 install:27   adb push $(MODULE_NAME) /data/local/tmp28   adb shell chmod 755 /data/local/tmp/$(MODULE_NAME)

其中gcc make工具位于..\android-ndk-r10d\prebuilt\windows\bin下,此目录需要加入到系统或临时的PATH环境变量中,然后将hello.c于makefile文件放到一个目录中,开启虚拟机,然后依次执行以下命令:

makemake install adb shell /data/local/tmp/hello

便会看到熟悉的“hello world!!!”输出了。

makefile中的I和L要记得分清,我没注意到,结果编译的时候总是报错。