• [odroid-pc] ubuntu12.04 64bit Android4.0.3 源码编译报错及解决的方法


    第一个错误:
            host Executable: cmu2nuance (out/host/linux-x86/obj/EXECUTABLES/cmu2nuance_intermediates/cmu2nuance)
            /usr/bin/ld: cannot find -lncurses
            collect2: ld returned 1 exit status
            make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1
            make: *** Waiting for unfinished jobs....
            host Executable: coverage (out/host/linux-x86/obj/EXECUTABLES/coverage_intermediates/coverage)

            安装libncurses5-dev:i386能够解决

            sudo apt-get install libncurses5-dev:i386

           编译kernel源代码时出现例如以下错误:

            HOSTLD  scripts/kconfig/mconf
            scripts/kconfig/mconf.o: In function `show_help':
            mconf.c:(.text+0x811): undefined reference to `stdscr'
            scripts/kconfig/mconf.o: In function `main':
            mconf.c:(.text+0x1286): undefined reference to `initscr'
            mconf.c:(.text+0x128d): undefined reference to `stdscr'
            scripts/kconfig/lxdialog/checklist.o: In function `print_arrows':
            checklist.c:(.text+0x41): undefined reference to `wmove'
            checklist.c:(.text+0x61): undefined reference to `acs_map'

            安装libncurses5-dev能够解决

            sudo apt-get install libncurses5-dev

    第二个错误:
          cc1plus: all warnings being treated as errors
        make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1
        解决:通过SMBAserver进入并改动源代码文件夹下/build/core/combo/HOST_linux-x86.mk文件:

        将下面语句
        HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
        改动为
        HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

    第三个错误:
        make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/slang_rs_export_foreach
        在project根文件夹下,打开以下的makefile文件:
        源代码文件夹 frameworks/compile/slang/Android.mk
        .在打开的makefile文件里依照以下更改:
        #local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter -Werror
        local_cflags_for_slang := -Wno-sign-promo -Wall -Wno-unused-parameter

        原因非常easy 把警告当作error处理,所以此处要改动

    第四个错误:
        make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libMesa_intermediates/src/glsl/linker.o] Error 1

        solutions:external/mesa3d/src/glsl/linker.cpp
        +#include <stddef.h>
        #include <cstdlib>
        #include <cstdio>


    第五个错误:
        In file included from external/oprofile/libpp/arrange_profiles.cpp:24:0:
        external/oprofile/libpp/format_output.h:94:22: 错误: reference ‘counts’ cannot be declared ‘mutable’ [-fpermissive]
        make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/liboprofile_pp_intermediates/arrange_profiles.o] 错误 1

        改动external/oprofile/libpp/format_output.h:94行
            mutable counts_t & counts;
        改为:

            counts_t & counts;

    第六个错误:

        target arm C: libc <= bionic/libc/bionic/pthread.c
        arm-linux-androideabi-gcc: error trying to exec 'cc1': execvp: No such file or directory
        make: *** [out/target/product/generic/obj/SHARED_LIBRARIES/libc_intermediates/bionic/pthread.o] Error 1

        gcc -print-prog-name=cc1   

        运行命令:export PATH=path/to/cc1:$PATH    


    后面的错误及解决方法:參照http://www.cnblogs.com/xingfuzzhd/archive/2012/09/05/2672000.html

    编译成功后:

    root@sjc-pc:~# vim ~/.bashrc


    在文件里适当位置加入
    #java 程序开发/执行的一些环境变量
    export ANDROID_PRODUCT_OUT=~/out/target/product/generic

    ANDROID_PRODUCT_OUT_BIN=~/out/host/linux-x86/bin

    export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};
    #以上为songjiachen加入20140303


    root@sjc-pc:~# source ~/.bashrc
    root@sjc-pc:~# cd ~/out/target/product/generic
    root@sjc-pc:~/out/target/product/generic# emulator -system system.img -data userdata.img -ramdisk ramdisk.img

    emulator: WARNING: system partition size adjusted to match image file (166 MB > 66 MB)

    此时模拟器已经成功执行

    Could not configure '/dev/hpet' to have a 1024Hz timer. This is not a fatal
    error, but for better emulation accuracy type:
    'echo 1024 > /proc/sys/dev/hpet/max-user-freq' as root.

    root@sjc-pc:~/out/target/product/generic# emulator -system system.img -data userdata.img -ramdisk ramdisk.img -partition-size 1024

    此时模拟器已经成功执行 加入 -partition-size 1024为使=warning消除

    直接输入emulator也可
  • 相关阅读:
    java 异常java.lang.UnsupportedOperationException
    转载RabbitMQ入门(6)--远程调用
    转载RabbitMQ入门(5)--主题
    转载RabbitMQ入门(4)--路由
    转载RabbitMQ入门(3)--发布和订阅
    转载RabbitMQ入门(2)--工作队列
    转载RabbitMQ入门(1)--介绍
    转载:浅析Java中的final关键字
    Java NIO Channel通道
    Java NIO Buffer缓冲区
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7308622.html
Copyright © 2020-2023  润新知