第一篇:Android2.3编译问题总结
Android2.3编译问题总结
1.安装JDK 2.获取源代码
cd android2.3 repo init-u git://android.git.kernel.org/platform/manifest.git-b gingerbread repo sync
3.source build/envsetup.sh 4.make –j4 5.问题一:
“prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/i686/cmov/libc.so.6: version 'GLIBC_2.11' not found(required by
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)” 解决:
cd prebuilt/linux-x86/toolchain
mv arm-eabi-4.4.3/ arm-eabi-4.4.3.org/
ln-s arm-eabi-4.4.0 arm-eabi-4.4.3 问题二:
out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to 'typeinfo for android::SortedVectorImpl' out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to 'vtable for __cxxabiv1::__vmi_class_type_info'
collect2: ld returned 1 exit status make: ** [out/target/product/generic/obj/EXECUTABLES/BufferQueue_test_intermediates/LINKED/BufferQueue_test] Error 1 解决:
system/media/opensles/libopensles/IAndroidEffect.c改为 system/media/opensles/libopensles/IAndroidEffect.cpp mv IAndroidEffect.c IAndroidEffect.cpp vi system/media/opensles/libopensles/Android.mk IAndroidEffect.c改为 IAndroidEffect.cpp 6.vi build/core/main.mk
ifneq(64,$(findstring 64,$(build_arch)))改为
ifneq(i686,$(findstring i686,$(build_arch)))2)external/clearsilver/cs/Android.mk
external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk 里面的 LOCAL_CFLAGS +=-m64
LOCAL_LDFLAGS +=-m64
改为
LOCAL_CFLAGS +=-m32
LOCAL_LDFLAGS +=-m32
第二篇:Android2.3编译问题总结
Android2.3编译问题总结
1.安装JDK
2.获取源代码
cd android2.3
repo init-u git://android.git.kernel.org/platform/manifest.git-b gingerbread
repo sync
3.source build/envsetup.sh
4.make –j4
5.问题一:
“prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc: /lib/i686/cmov/libc.so.6:version 'GLIBC_2.11' not found(required by
prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc)”
解决:
cd prebuilt/linux-x86/toolchain
mv arm-eabi-4.4.3/ arm-eabi-4.4.3.org/
ln-s arm-eabi-4.4.0 arm-eabi-4.4.3
问题二:
out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to 'typeinfo for android::SortedVectorImpl'
out/target/product/generic/obj/lib/libOpenSLES.so: undefined reference to 'vtable for __cxxabiv1::__vmi_class_type_info'collect2: ld returned 1 exit status
make: **
[out/target/product/generic/obj/EXECUTABLES/BufferQueue_test_intermediates/LINKED/BufferQueue_test] Error 1
解决:
system/media/opensles/libopensles/IAndroidEffect.c改为
system/media/opensles/libopensles/IAndroidEffect.cpp
mv IAndroidEffect.c IAndroidEffect.cpp
vi system/media/opensles/libopensles/Android.mk
IAndroidEffect.c改为 IAndroidEffect.cpp
6.vi build/core/main.mk
ifneq(64,$(findstring 64,$(build_arch)))改为
ifneq(i686,$(findstring i686,$(build_arch)))
2)external/clearsilver/cs/Android.mk
external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk 里面的LOCAL_CFLAGS +=-m64
LOCAL_LDFLAGS +=-m64
改为
LOCAL_CFLAGS +=-m32
LOCAL_LDFLAGS +=-m32
第三篇:Android源码编译整理总结
1.必要的软件环境
sudo apt-get install build-essential sudo apt-get install make sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install libc6-dev sudo apt-get install patch sudo apt-get install texinfo sudo apt-get install libncurses-dev sudo apt-get install git-core gnupg sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl sudo apt-get install ncurses-dev sudo apt-get install zlib1g-dev sudo apt-get install valgrind sudo apt-get install python2.5
笔者发现这里已经比较全来,不过还有一些应该是linux系统自带的,如果缺少就按照提示install一下
安装java环境,这里有必要说一下,大家装环境的时候很多人会一起装,不过笔者建议java和其他的分开,因为装java很可能会失败,从而导致其他的也fail sudo apt-get install sun-java6-jdk
这里就说到上面说很多人会安装java失败的问题,笔者也是从网上找的解决办法现在一起整理出来:
ubuntu10.04 lucid 去掉了sun-java6-jre,sun-java6-jdk的源,所以如果是直接apt-get install 提示是
现在没有可用的软件包 sun-java6-jdk,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,或者只能在其他发布源中找到
E: 软件包 sun-java6-jdk 还没有可供安装的候选者
解决办法(选择一个即可):
1、系统->系统管理->软件源->“其它软件”下添加一个 deb http://archive.canonical.com/ lucid partner
之后,再执行apt-get install 如果是下载java5就添加deb http://us.archive.ubuntu.com/ubuntu/ jaunty multiverse”
2、自己从sun网站下载相应的Jre,JDK安装即可
3、从新立德软件管理器中search openJDK,用openJDK代替
注: 官方文档说如果用sun-java6-jdk可出问题,得要用sun-java5-jdk。经测试发现,如果仅仅make(make不包括make sdk),用sun-java6-jdk是没有问题的。而make sdk,就会有问题,严格来说是在make doc出问题,它需要的javadoc版本为1.5。
因此,我们安装完sun-java6-jdk后最好再安装sun-java5-jdk,或者 只安装sun-java5-jdk。这里sun-java6-jdk和sun-java5-jdk都安装,并只修改javadoc.1.gz和 javadoc。因为只有这两个是make sdk用到的。这样的话,除了javadoc工具是用1.5版本,其它均用1.6版本: sudo apt-get install sun-java5-jdk 修改javadoc的link cd /etc/alternatives sudo rm javadoc.1.gz
sudo ln-s /usr/lib/jvm/java-1.5.0-sun/man/man1/javadoc.1.gz javadoc.1.gz sudo rm javadoc sudo ln-s /usr/lib/jvm/java-1.5.0-sun/bin/javadoc javadoc
2、设置环境变量 vim ~/.bashrc 在.bashrc中新增或整合PATH变量,如下 #java 程序开发/运行的一些环境变量 JAVA_HOME=/usr/lib/jvm/java-6-sun JRE_HOME=${JAVA_HOME}/jre export ANDROID_JAVA_HOME=$JAVA_HOME export CLASSPATH=.:${JAVA_HOME}/lib:$JRE_HOME/lib:$CLASSP ATH export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin export JAVA_HOME;export JRE_HOME;export CLASSPATH;HOME_BIN=~/bin/ export PATH=${PATH}:${JAVA_PATH}:${JRE_PATH}:${HOME_BIN};#echo $PATH;最后,同步这些变化: source ~/.bashr 3.安装repo(用来更新android源码)
创建~/bin目录,用来存放repo程序,如下: $ cd ~ $ mkdir bin 并加到环境变量PATH中,在第2步中已经加入 下载repo脚本并使其可执行:
$ curl http://android.git.kernel.org/repo >~/bin/repo $ chmod a+x ~/bin/repo 4.初始化repo
repo是android对git的一个封装,简化了一些git的操作。创建工程目录: $ mkdir android $ cd android repo初始化
$ repo init-u git://android.git.kernel.org/platform/manifest.git 这里包含了android最新的源码
在此过程中需要输入名字和email地址。初始化成功后,会显示: repo initialized in /android 在~/android下会有一个.repo的隐藏目录。
如果想拿某个branch而不是主线上的代码,我们需要用-b参数制定branch名字,比如:
repo init-u git://android.git.kernel.org/platform/manifest.git-b cupcake 这 里抓下来的分支是cupcake,网上关于编译到文章大多是针对cupcake分支,是andoird 1.5版本,但是之前我没有输入后面的参数,以致于下到的代码是主线上的代码,是android 2.1版本。两者目录结构有一些差别,导致当我按照网上的说明步骤来执行遇到错误时,不知道是版本不同的原因还是其他什么原因。因此很奇怪为什么网上的文 章都是说cupcake的,而没有怎么讲主线的源代码编译。5.同步源代码 $ repo sync 这一步要很久,要看个人的网络速度
6.编译android源码,并得到~/android/out目录 $ cd ~/andoird
$ make-j2 笔者的电脑是双核所以是-j2,以此类推8核就可以-j8 这一过程很久,主要看机器的配置
如果是cupcake,那么直接make的时候,会出现以下错误:
1.frameworks/policies/base/PolicyConfig.mk:22: *** No module defined for the given PRODUCT_POLICY(android.policy_phone).Stop.错误。
解决办法:
在build/tools/findleaves.sh中的第89行,这一句find “${@:0:$nargs}” $findargs-type f-name “$filename”-print |
改为find “${@:1:$nargs-1}” $findargs-type f-name “$filename”-print |
2.frameworks/base/tools/aidl/AST.cpp:10: error: 'fprintf' was not declared in this scope的错误
解决办法:
下载gcc-4.3和g++-4.3
apt-get install gcc-4.3 g++-4.3
因为ubuntu 9.10自带到是gcc 4.4,因此需要重新下载gcc 4.3,最后设置gcc软连接到gcc 4.3
进入/usr/bin cd /usr/bin
建个软连接
ln-s gcc-4.3 gcc
ln-s g++-4.3 g++
然后进入android目录下,执行make,就可以了。
主线代码则没有此问题 7.在模拟器上运行编译好的android
编译好android之后,emulator在~/android/out/host/linux-x86/bin 下,ramdisk.img,system.img和userdata.img则在~/android/out/target/product /generic下 $ cd ~/android/out/host/linux-x86/bin 增加环境变量 $ emacs ~/.bashrc 在.bashrc中新增环境变量,如下 #java 程序开发/运行的一些环境变量
export ANDROID_PRODUCT_OUT=~/android/out/target/product/g eneric ANDROID_PRODUCT_OUT_BIN=~/android/out/host/linux-x 86/bin export PATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_ PRODUCT_OUT};最后,同步这些变化: $ source ~/.bashrc $ cd ~/android/out/target/product/generic
$ emulator-system system.img-data userdata.img-ramdisk ramdisk.img 最后进入android桌面,就说明成功了。8.编译模块
android中的一个应用程序可以单独编译,编译后要重新生成system.img 在源码目录下执行
$.build/envsetup.sh(.后面有空格)就多出一些命令:
-croot: Changes directory to the top of the tree.mm: Builds all of the modules in the current directory.cgrep: Greps on all local C/C++ files.resgrep: Greps on all local res/*.xml files.-godir: Go to the directory containing a file.可以加—help查看用法
我们可以使用mmm来编译指定目录的模块,如编译联系人: $ mmm packages/apps/Contacts/ 编完之后生成两个文件: out/target/product/generic/data/app/ContactsTests.apk out/target/product/generic/system/app/Contacts.apk 可以使用 $ make snod 重新生成system.img,再运行模拟器 9.编译SDK
直接执行make是不包括make sdk的。make sdk用来生成SDK,这样,我们就可以用与源码同步的SDK来开发android了。
a)修改/frameworks/base/include/utils/Asset.h „UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024‟ 改为 „UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024‟
原因是eclipse编译工程需要大于1.3M的buffer;
这一步,笔者编译的是主线程的,在Asset.h文件里没找到上面的常量,所以就没做这一步,但是也成功了。b)编译ADT。
如果想用eclipse开发android应用程序,最好是安装ADT,这样就可以在eclipse下创建android的工程。
产生ADT eclipse plugins $ development/tools/eclipse/scripts/build_server.sh ~/adt/
使用前建议设定一下ECLIPSE_HOME的环境变量,不然会以为没有装eclipse,然后帮你download下来。
这里要非常注意,本人就曾经卡在这里,始终编译不过。一开始会提示eclipse的什么什么jar找不到,因此fail。这主要是因为我到 ECLIPSE_HOME到环境变量设置错误。我之前装的eclipse只从新力得上面抓下来的,好像找不到eclipse所在到目录是哪个,结果就设置 了一个名为eclipse的文件夹作为环境变量。因此后来直接从eclipse的官网上下了一个,以为这样就可以。结果杯具的是下到是一个eclipse Galileo,到头来还是提示eclipse什么什么文件找不到。最后实在没法,索性把eclipse删个干净,让程序自己去下eclipse,发现抓 的是eclipse ganymede。在此要郑重说明一下,自己去下的话应该下载jee的ganymade,而不能是java 的ganymade,具体原因试试就知道了。
主线代码编译ADT的时候方法相同,但是没有development/tools/eclipse这个目录,而是在/sdk/eclipse这个目录 c)执行make sdk。
注意,这里需要的javadoc版本为1.5,所以你需要在步骤1中同时安装sun-java5-jdk $ make sdk
编译很慢。编译后生成的SDK存放在out/host/linux-x86/sdk/,此目录下有android-sdk_eng.xxx_linux-x86.zip和android-sdk_eng.xxx_linux-x86目录。android-sdk_eng.xxx_linux-x86就是 SDK目录
实际上,当用mmm命令编译模块时,一样会把SDK的输出文件清除,因此,最好把android-sdk_eng.xxx_linux-x86移出来
此后的应用开发,就在该SDK上进行,所以把7)对于~/.bashrc的修改注释掉,增加如下一行:
export PATH=${PATH}:~/android/out/host/linux-x86/sdk/andr oid-sdk_eng.xxx_linux-x86/tools 注意要把xxx换成真实的路径;
同样笔者编译的是主线程,所以编译完之后,发现~/android/out/host/linux-x86/sdk/android-sdk_eng.x xx_linux-x86/目录下有2个文件夹一个是tools一个是platform-tools,然后用eclipse指向这个目录的时候会提示找不到ADB,这时候只要把platform-tools下的ADB拷贝到tools文件夹就OK了 d)关于环境变量、android工具的选择 目前的android工具有:
A、我们从网上下载的SDK,如果你下载过的话(tools下有许多android工具,lib/images下有img映像)
B、我们用make sdk编译出来的SDK(tools下也有许多android工具,lib/images下有img映像)
C、我们用make编译出来的out目录(tools下也有许多android工具,lib/images下有img映像)
那么我们应该用那些工具和img呢?
首先,我们一般不会用A选项的工具和img,因为一般来说它比较旧,也源码不同步。其次,也不会用C选项的工具和img,因为这些工具和img没有经过 SDK的归类处理,会有工具和配置找不到的情况;事实上,make sdk产生的很多工具和img,在make编译出来out目录的时候,已经编译产生了,make sdk只是做了copy而已。e)安装、配置ADT
~/adt/android-eclipse/下的文件压缩,然后从eclipse中install就行了,当然还有其他方法 10.编译linux内核映像 a)准备交叉编译工具链
android代码树中有一个prebuilt项目,包含了我们编译内核所需的交叉编译工具。b)设定环境变量 $ emacs ~/.bashrc 增加如下两行:
export PATH=$PATH:~/android/prebuilt/linux-x86/toolchain/ arm-eabi-4.4.0/bin export ARCH=arm 保存后,同步变化: $ source ~/.bashrc c)获得合适的内核源代码 $ cd ~/android 获得内核源代码仓库
$ git clone git://android.git.kernel.org/kernel/common.git kernel $ cd kernel $ git branch 显示 * android-2.6.27
说明你现在在android-2.6.27这个分支上,也是kernel/common.git的默认主分支。显示所有head分支: $ git branch-a 显示 * android-2.6.27 remotes/origin/HEAD-> origin/android-2.6.27 remotes/origin/android-2.6.25 remotes/origin/android-2.6.27 remotes/origin/android-2.6.29 remotes/origin/android-goldfish-2.6.27 remotes/origin/android-goldfish-2.6.29
我们选取最新的android-goldfish-2.6.29,其中goldfish是android的模拟器模拟的CPU。
$ git checkout-b android-goldfish-2.6.29 origin/android-goldfish-2.6.29 $ git branch 显示 android-2.6.27 * android-goldfish-2.6.29 我们已经工作在android-goldfish-2.6.29分支上了。d)设定交叉编译参数
打开kernel目录下的Makefile文件,把CROSS_COMPILE指向刚才下载的prebuilt中的arm-eabi编译器
CROSS_COMPILE ?= arm-eabi-把 LDFLAGS_BUILD_ID = $(patsubst-Wl$(comma)%,%, $(call ld-option,-Wl$(comma)build-id,))
这一行注释掉,并且添加一个空的LDFLAGS_BUILD_ID定义,如下: LDFLAGS_BUILD_ID = e)编译内核映像 $ cd ~/android/kernel $ make goldfish_defconfig $ make f)测试生成的内核映像
$ emulator-avd myavd-kernel ~/android/kernel/arch/arm/boot/zImage
第四篇:编译原理课设总结(定稿)
董楠楠1006010101
经过一个星期的编译原理课程设计,在老师的指导以及小组同学的互相帮助下顺利完成该课程设计。通过该课程设计,收获很多。
此次课设,我们小组用的是java语言,在课设过程中,用到了以前开发过程中所没有的探索过的很多新方法,最直接的影响就是让我对java语言的认识与理解更近一层。并且掌握了什么是编译程序,编译程序工作的基本过程及其各阶段的基本任务,对课本上的知识有了更深的理解。
因为本实验用了java语言编写,个人觉得相比C语言模块更加清晰明了。在该词法分析程序中,我们用了java中的split方法对输入串进行分割,简单易懂。其次,在字符匹配过程中,引进了正则表达式,让输入串与之匹配,极大地缩减程序的繁琐性。同时,java的面对对象的性质在程序中得到充分的体现,在代码的编写过程中,将各种判定封装为函数,主函数通过调用这些封装函数完成功能,摒弃了C语言结构化的繁琐,使整个处理函数清晰可读。在测试多个用例时,发现程序的很多小错误,但最后都能够一一解决,尤其在这个过程中,我也充分体会到了团队合作的力量。此次课设更加深了对java语言的认识,并熟悉了java语言中正则表达式的用法。
通过该课程设计,全面系统的理解了编译原理程序构造的一般原理和基本实现方法。能够把学过的计算机编译原理的知识强化,并通过自己设计的程序表现出来,加深了对理论知识的理解,同时也激发了学习的积极性。课程设计中的第二个程序对简单表达式文法构造算符优先分析器比较复杂,在调试时出现了很多问题,经过大量的修改和一遍又一遍地调试,最后把错误全都改正没有做到根据文法得到相应的算符优先表,而是在程序中直接给出,这是程序的一个小缺陷。
第五篇:BUSYBOX编译错误及解决方法总结
编译busybox的组合:
busybox-1.0.0 arm-linux-gcc-2.95.3(AT91rm9200开发板)
经典参考:
http://busybox.net/downloads/ 下载busybox http://husaberg.toby-churchill.com/balloon/releases/v0.7/roots/ 文件系统制作
移植基本过程:
1.到http://busybox.net/downloads/busybox-1.7.3.tar.bz2下载busybox;2.解压busybox1.7.3 tar jxvf busybox-1.7.3.tar.bz2 3.make defconfig 4.make menuconfig
在[build options]中选择[Build busybox as a static binary] 主要是C库的连接方式,安装目录等。5.make 6.创建rootfs目录 7.make install
编译过程可能出现以下错误,解决方法如下:
可能会出现的错误:
1.出现如下错误
CC miscutils/taskset.o miscutils/taskset.c:17: error: parse error before '*' token miscutils/taskset.c:18: warning: function declaration isn't a prototype miscutils/taskset.c: In function `__from_cpuset':
miscutils/taskset.c:22: error: `CPU_SETSIZE' undeclared(first use in this function)
miscutils/taskset.c:22: error:(Each undeclared identifier is reported only once miscutils/taskset.c:22: error: for each function it appears in.)miscutils/taskset.c:26: warning: implicit declaration of function `CPU_ISSET' miscutils/taskset.c:26: error: `mask' undeclared(first use in this function)miscutils/taskset.c: In function `taskset_main': miscutils/taskset.c:47: error: `cpu_set_t' undeclared(first use in this function)
miscutils/taskset.c:47: error: parse error before “mask” miscutils/taskset.c:68: warning: implicit declaration of function `CPU_ZERO' miscutils/taskset.c:68: error: `new_mask' undeclared(first use in this function)
miscutils/taskset.c:69: error: `CPU_SETSIZE' undeclared(first use in this function)miscutils/taskset.c:71: warning: implicit declaration of function `CPU_SET'
miscutils/taskset.c:78: error: `mask' undeclared(first use in this function)
make[1]: *** [miscutils/taskset.o] Error 1
make: *** [miscutils] Error 2
make menuconfig 找到[Miscellaneous Utilities],去掉[task set]
2.如下错误:
time.c libbb/time.c:20: error: “CLOCK_MONOTONIC” undeclared(first use in this function)make menuconfig
去掉Busybox Settings->Busybox Library Tuning->[]Use clock_gettie(CLOCK_MONOTONIC)syscall
3.出现如下错误:
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/fs.h:12,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/capability.h:17,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/binfmts.h:5,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/sched.h:9,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/inetpeer.h:14,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:28,from /busybox-1.01/networking/route.c:42: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/wait.h:4: warning: `WNOHANG' redefined /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/waitflags.h:26: warning: this is the location of the previous definition /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/wait.h:5: warning: `WUNTRACED' redefined /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/waitflags.h:27: warning: this is the location of the previous definition In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/sched.h:77,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/inetpeer.h:14,from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:28,from /busybox-1.01/networking/route.c:42: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:108: warning: `FD_SET' redefined /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:83: warning: this is the location of the previous definition /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:109: warning: `FD_CLR' redefined /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:84: warning: this is the location of the previous definition /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:110: warning: `FD_ISSET' redefined /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:85: warning: this is the location of the previous definition /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:111: warning: `FD_ZERO' redefined /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:86: warning: this is the location of the previous definition In file included from /busybox-1.01/networking/route.c:42: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:34: warning: #warning This file is not supposed to be used outside of kernel.…… ……
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/netdb.h:38,from /busybox-1.01/include/libbb.h:36,from /busybox-1.01/include/busybox.h:54,from /busybox-1.01/networking/route.c:44: /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:34: redefinition of `union sigval' /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:37: warning: redefinition of `sigval_t' /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/siginfo.h:11: warning: `sigval_t' previously declared here /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:274: redefinition of `struct sigevent' /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:289: warning: redefinition of `sigevent_t' /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/siginfo.h:211: warning: `sigevent_t' previously declared here /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:298: parse error before `0' In file included from /busybox-1.01/include/busybox.h:54,from /busybox-1.01/networking/route.c:44: /busybox-1.01/include/libbb.h:112: warning: declaration of `flags' shadows global declaration /busybox-1.01/include/libbb.h:113: warning: declaration of `flags' shadows global declaration /busybox-1.01/include/libbb.h:135: warning: declaration of `flags' shadows global declaration /busybox-1.01/include/libbb.h:251: warning: declaration of `flags' shadows global declaration /busybox-1.01/include/libbb.h:256: redefinition of `struct sysinfo' /busybox-1.01/include/libbb.h:272: warning: declaration of `info' shadows global declaration /busybox-1.01/include/libbb.h:309: warning: declaration of `flags' shadows global declaration /busybox-1.01/include/libbb.h:440: warning: declaration of `flags' shadows global declaration /busybox-1.01/networking/route.c:475: warning: declaration of `flags' shadows global declaration /busybox-1.01/networking/route.c: In function `set_flags': /busybox-1.01/networking/route.c:476: warning: declaration of `flags' shadows global declaration /busybox-1.01/networking/route.c: In function `displayroutes': /busybox-1.01/networking/route.c:490: warning: declaration of `flags' shadows global declaration make: *** [/busybox-1.01/networking/route.o] Error 1 去掉Busybox Settings->NetWork device-->[]route
4.如下错误:
usr/src/armlinux/busybox-1.0.0/libbb/loop.c:32:linux/version.h:No such file or directory /usr/src/armlinux/busybox-1.0.0/libbb/loop.c:35 arse error /usr/src/armlinux/busybox-1.0.0/libbb/loop.c:37 arse error 将内核源码下的include/linux目录下的versition.h文件
放到 busybox-1.0.0/include/linux下
.....