在Android下编译C


以前根本没有接触过Android,对Android感觉老好奇了,在公司经历几天简单的不知所云的培训就被拉去进项目了——悲催!啥都不会。总算把项目熬完了结果是啥都没学到,净给自己增加压力了。今天刚好学习了下在Android下编译C模块,记录一下。

我的Android源码目录是:/home/grj/android_kernel_workspace/Android-2.3.4,以下简称:$(android_src)。helloworld太经典了,我也使用这个例子来学习一下。

1、在$(android_src)目录下,创建一个hello目录。

         #mkdir $(android_src)/hello

2、在hello目录中,编写hello.c,内容如下:

         #include <stdio.h> 
         int main()
          {
               printf("hello world \n ");  

              exit(0);                   

           }
3、在hello目录中,编写Android.mk, 内容如 下:

   LOCAL_PATH:=$(call my-dir)
   include $(CLEAR_VARS)
   LOCAL_MODULE_TAGS := optional
   LOCAL_MODULE:=helloworld
   LOCAL_SRC_FILES:=hello.c
   include $(BUILD_EXECUTABLE)
                                

LOCAL_SRC_FILES指定源文件,LOCAL_MODULE指定要编译的模块名,include $(BUILD_EXECUTABLE)指定编译成可执行文件,改为BUILD_SHARED_LIBRARY为动态链接库,这些可参考$(yourAndroid)/build/core/config.mk

4、回到Android源代码顶层目录进行编译,cd $(andoird_src)   &&  make helloworld

相关内容