zoukankan      html  css  js  c++  java
  • 坑爹,终于编译出android 下的hello.so 文件了。郁闷死了,粗心的人主儿。

    root@android2012-desktop:~/c210/android-samsung-dev/build# chmod 777 *
    root@android2012-desktop:~/c210/android-samsung-dev/build# ./envsetup.sh
    root@android2012-desktop:~/c210/android-samsung-dev/build# cd ..

    下面这里死活不行

    root@android2012-desktop:~/c210/android-samsung-dev# mmm ./external/hello
    未找到 'mmm' 命令,您要输入的是否是:
     命令 'mwm' 来自于包 'motif-clients' (multiverse)
     命令 'mwm' 来自于包 'lesstif-bin' (universe)
     命令 'mgm' 来自于包 'mgm' (universe)
     命令 'rmm' 来自于包 'nmh' (universe)
     命令 'rmm' 来自于包 'mailutils-mh' (universe)
     命令 'mmv' 来自于包 'mmv' (universe)
     命令 'mmd' 来自于包 'mtools' (main)
     命令 'mmg' 来自于包 'mkvtoolnix-gui' (universe)
     命令 'mma' 来自于包 'mma' (universe)
     命令 'mm' 来自于包 'mountmanager' (universe)
     命令 'mm' 来自于包 'multimail' (universe)
    mmm:找不到命令

    后来这样才行
    root@android2012-desktop:~/c210/android-samsung-dev#  .  ./build/envsetup.sh
    including device/htc/passion/vendorsetup.sh
    including device/samsung/smdkc110/vendorsetup.sh
    including device/samsung/smdkv210/vendorsetup.sh
    root@android2012-desktop:~/c210/android-samsung-dev#  mmm ./external/hello
    ============================================
    PLATFORM_VERSION_CODENAME=REL
    PLATFORM_VERSION=2.3.1
    TARGET_PRODUCT=generic
    TARGET_BUILD_VARIANT=eng
    TARGET_SIMULATOR=
    TARGET_BUILD_TYPE=release
    TARGET_BUILD_APPS=
    TARGET_ARCH=arm
    HOST_ARCH=x86
    HOST_OS=linux
    HOST_BUILD_TYPE=release
    BUILD_ID=GINGERBREAD
    ============================================
    make:进入目录'/home/android2012/c210/android-samsung-dev'
    target thumb C: hello <= external/hello/hello.c
    target Executable: hello (out/target/product/generic/obj/EXECUTABLES/hello_intermediates/LINKED/hello)
    target Non-prelinked: hello (out/target/product/generic/symbols/system/bin/hello)
    target Strip: hello (out/target/product/generic/obj/EXECUTABLES/hello_i

    仔细看luoshengyang 的博客才发现我搞错了一些细节

    第一次下载好Android源代码工程后,我们通常是在Android源代码工程目录下执行make命令,经过漫长的等待之后,就可以得到Android系统镜像system.img了。以后如果我们修改了Android源代码中的某个模块或者在Android源代码工程新增一个自己的模块,是不是还是执行make命令呢?答案是否定的,Google为我们准备了另外的命令来支持编译单独的模块,以及重新打包system.img的命令。在继续学习Android源代码之前,就让我们先来看看这个命令吧。

          一. 首先在Android源代码目录下的build目录下,有个脚本文件envsetup.sh,执行这个脚本文件后,就可以获得一些有用的工具:

          USER-NAME@MACHINE-NAME:~/Android$ .  ./build/envsetup.sh

          注意,这是一个source命令,执行之后,就会有一些额外的命令可以使用:

          - croot: Changes directory to the top of the tree.

          - m: Makes from the top of the tree.
          - mm: Builds all of the modules in the current directory.
          - mmm: Builds all of the modules in the supplied directories.
          - cgrep: Greps on all local C/C++ files.
          - jgrep: Greps on all local Java files.
          - resgrep: Greps on all local res/*.xml files.
          - godir: Go to the directory containing a file.
          这些命令的具体用法,可以在命令的后面加-help来查看,这里我们只关注mmm命令,也就是可以用它来编译指定目录的所有模块,通常这个目录只包含一个模块。
          二. 使用mmm命令来编译指定的模块,例如Email应用程序:
          USER-NAME@MACHINE-NAME:~/Android$ mmm packages/apps/Email/
          编译完成之后,就可以在out/target/product/generic/system/app目录下看到Email.apk文件了。Android系统自带的App都放在这具目录下。另外,Android系统的一些可执行文件,例如C编译的可执行文件,放在out/target/product/generic/system/bin目录下,动态链接库文件放在out/target/product/generic/system/lib目录下,out/target/product/generic/system/lib/hw目录存放的是硬件抽象层(HAL)接口文件,后面的文章里面,我们会陆续提及到,敬请关注。
          三. 编译好模块后,还要重新打包一下system.img文件,这样我们把system.img运行在模拟器上时,就可以看到我们的程序了。
          USER-NAME@MACHINE-NAME:~/Android$ make snod
          四. 参照Ubuntu上下载、编译和安装Android最新源代码一文介绍的方法运行模拟器:
          USER-NAME@MACHINE-NAME:~/Android$ emulator
          这样一切就搞定了。
  • 相关阅读:
    HDU 1124 Factorial
    hdu 1690 Bus System
    hdu 1113 Word Amalgamation
    POJ 2482 Stars in Your Window
    hdu 1385 ZOJ 1456 Minimum Transport Cost(经典floyd)
    hdu 1907 John
    VMware 虚拟机 安装 UBuntu 9.10 命令模式转换成窗口模试
    #pragma CODE_SEG __NEAR_SEG NON_BANKED详解
    Ubuntu 下Hadoop 伪分布式 hadoop0.20.2.tar.gz 的安装
    文件拷贝代码以及疑问
  • 原文地址:https://www.cnblogs.com/gooogleman/p/2583020.html
Copyright © 2011-2022 走看看