关于Android源码中编译C模块的错误
来源:互联网 发布:php 游戏源码 编辑:程序博客网 时间:2024/06/04 17:40
一、系统环境
开发环境:ubuntu11.10
源码包:Android2.2
二、原工程(helloworld)
在Android2.2/development/hello/下创建文件hello.c和Android.mk
//hello.c#include<stdio.h>int main(){ printf("Hi,this is scan module interface...\n"); exit(0);}
##Android.mkLOCAL_PATH:=$(call my-dir)include $(CLEAR_VARS)LOCAL_MODULE := helloworldLOCAL_SRC_FILES := hello.cinclude $(BUILD_EXECUTABLE)
如上创建了文件,返回到android的根目录下,运行命令
make helloworld却出现如下错误:
lai@lai-ThinkPad-X61:~/af-t34$ . build/envsetup.shincluding device/htc/dream/vendorsetup.shincluding device/htc/passion/vendorsetup.shincluding device/htc/sapphire/vendorsetup.shlai@lai-ThinkPad-X61:~/af-t34$ make helloworld============================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=2.2TARGET_PRODUCT=genericTARGET_BUILD_VARIANT=engTARGET_SIMULATOR=TARGET_BUILD_TYPE=releaseTARGET_BUILD_APPS=TARGET_ARCH=armHOST_ARCH=x86HOST_OS=linuxHOST_BUILD_TYPE=releaseBUILD_ID=FRF91============================================build/core/copy_headers.mk:15: 警告:覆盖关于目标“out/target/product/generic/obj/include/libpv/SsbSipMfcApi.h”的命令build/core/copy_headers.mk:15: 警告:忽略关于目标“out/target/product/generic/obj/include/libpv/SsbSipMfcApi.h”的旧命令external/opencore/build_config/opencore_dynamic/Android_opencore_common.mk:104: external/opencore/codecs_v2/video/mfc_c100/dec/Android.mk: 没有那个文件或目录external/opencore/build_config/opencore_dynamic/Android_opencore_common.mk:105: external/opencore/codecs_v2/video/mfc_c100/enc/Android.mk: 没有那个文件或目录vendor/sec/sec_proprietary/smdkc110/keychars/Android.mk:28: 警告:覆盖关于目标“out/target/product/generic/system/usr/keylayout/qwerty.kl”的命令sdk/emulator/keymaps/Android.mk:13: 警告:忽略关于目标“out/target/product/generic/system/usr/keylayout/qwerty.kl”的旧命令vendor/sec/sec_proprietary/smdkc100/keychars/Android.mk:22: 警告:覆盖关于目标“out/target/product/generic/system/usr/keylayout/s3c-keypad.kl”的命令vendor/sec/sec_proprietary/smdkc110/keychars/Android.mk:22: 警告:忽略关于目标“out/target/product/generic/system/usr/keylayout/s3c-keypad.kl”的旧命令build/core/base_rules.mk:128: *** vendor/sec/sec_proprietary/smdkc100/keychars: MODULE.TARGET.KEYCHARS.s3c-keypad.kcm already defined by vendor/sec/sec_proprietary/smdkc110/keychars。 停止。lai@lai-ThinkPad-X61:~/af-t34$
三、排错
首先定位错误在【build/core/base_rules.mk:128: *** vendor/sec/sec_proprietary/smdkc100/keychars: MODULE.TARGET.KEYCHARS.s3c-keypad.kcm already defined by vendor/sec/sec_proprietary/smdkc110/keychars。 停止。】
在android源码包中的“vendor/sec/sec_proprietary/”路径下有文件夹“smdkc100/keychars/”和“smdkc110/keychars/”。并且在这个两个文件夹下都有“s3c-keypad.kcm”文件。
原因可能是没有选择编译目标。
如何选择编译目标呢?看到编译源码中有一个提示,抱着试试的心里做了:
$ make helloworld PRODUCT-sec_smdkv210-eng============================================PLATFORM_VERSION_CODENAME=RELPLATFORM_VERSION=2.2TARGET_PRODUCT=sec_smdkv210TARGET_BUILD_VARIANT=engTARGET_SIMULATOR=TARGET_BUILD_TYPE=releaseTARGET_BUILD_APPS=TARGET_ARCH=armHOST_ARCH=x86HOST_OS=linuxHOST_BUILD_TYPE=releaseBUILD_ID=FRF91============================================结果还真成了,out/target/product/smdkv210/system/bin/文件夹中找到了helloworld的二进制文件。
四、运行测试
开机,连接usb数据线。拷贝helloworld到android的文件系统中:
adb push helloworld /data/然后到terminal中运行里
# ./helloworld Hi,this is scan module interface...
在此感谢网友Jeffery ~~
- 关于Android源码中编译C模块的错误
- Android项目中编译 C的模块
- Android项目中编译 C的模块
- Android源码开发中单个模块的编译自动化
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(1)
- 关于如何在Android源码目录中建立自己的C工程,并用mm命令单独进行该C工程模块的编译,以及Android.mk的使用介绍(2)
- 编译Android源码过程中出现的错误
- 编译Android源码过程中遇到的错误
- Android源码 模块编译
- 如何编译Android源码的单独模块
- android源码模块编译出现的问题
- 基于Android源码的模块编译
- 单独编译Android源码的模块。
- 在android源码编译自己的模块
- android源码编译,模块编译
- Android源码树中C代码的编译
- Android 编译源码 错误
- android 编译源码错误
- SQL Server数据库导出与导入
- SetEvent、PulseEvent与WaitForSingleObject
- cocos2dx-vs模板孤狼优化版V1.4
- C语言格式化输出
- Android Layout各种布局
- 关于Android源码中编译C模块的错误
- Enable3dControls与Enable3dControlsStatic
- EPOLL技术
- 【线段树】hdu 1166 敌兵布阵
- mysql 时间转换函数的用法
- ARM、THUMB指令集
- Perf -- Linux下的系统性能调优工具,第 1 部分
- PHP_SELF、 SCRIPT_NAME、 REQUEST_URI区别
- 惯性测试转台