ndk开发之编译安卓c/c++程序_移动开发_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > 移动开发 > ndk开发之编译安卓c/c++程序

ndk开发之编译安卓c/c++程序

 2015/4/14 3:22:33  浅塘半亩  程序员俱乐部  我要评论(0)
  • 摘要:安装ndk从安卓官网下载,ndk,双击解压到当前文件夹。建议想装在那个文件夹便解压到那个文件夹,而且文件夹的路径中不要有空格,因为gcc编译的时候会把空格前后两个字符串作为两个文件夹来对待。使用gcc手动编译使用gcc编译程序需要先编写makefile文件,然后通过gccmake工具进行编译,makefile文件内容如下:1NDK_ROOT=C:/android-ndk-r10d2TOOLCHAINS_ROOT=$(NDK_ROOT)/toolchains/arm-linux
  • 标签:程序 编译 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     -nostdlib\
14     -lgcc\
15     -Bdynamic\
16     -lc
17 OBJS=$(MODULE_NAME).o\
18     $(PLATFORM_LIB)/crtbegin_dynamic.o\
19     $(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要记得分清,我没注意到,结果编译的时候总是报错。

上一篇: 使用ASP.NET 5开发AngularJS应用 下一篇: 没有下一篇了!
发表评论
用户名: 匿名