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=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要记得分清,我没注意到,结果编译的时候总是报错。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。