ubuntu10.04全过程创建交叉编译环境
- 格式:doc
- 大小:40.00 KB
- 文档页数:4
交叉编译流程
交叉编译的过程可以分为以下步骤:
1. 选择目标体系结构:确定要交叉编译的目标体系结构,例如不同的硬件平台或操作系统。
2. 安装交叉编译工具链:交叉编译工具链包括交叉编译器、链接器、调试器和库文件等,用于将源代码编译成目标平台可执行程序。
这些工具可以通过官方提供的源代码进行编译,也可以通过第三方工具包进行安装。
3. 配置交叉编译环境:确保系统能够正确地找到和使用交叉编译工具链。
这通常涉及将工具链的路径添加到环境变量中,并在构建系统中设置相应的配置参数。
4. 运行configure命令:进入源码包根目录下,运行configure命令。
该
命令有很多参数可配置,可以用configure –help来查看,在交叉编译过程中可设置–host、–target、–build这几个参数。
这些参数配置后,configure时会读取源码目录下面的文件,查找、检查设置的参数是否支持。
完成以上步骤后,就可以开始进行交叉编译了。
如果还有其他疑问,建议咨询专业编程人员以获取更全面的信息。
交叉编译环境以及开发板上-binsh:.hello:notfound(使⽤arm-linu。
⽬标板是S3C2440.⾄于交叉编译环境的搭建就不多说了,⽹上很多教程.搭建好了交叉编译环境后,第⼀件事就是传说中的”Hello,World!”.⼀. 主机编译环节我使⽤的系统是ubuntu10.04,搭建好交叉编译环境后,终端输⼊arm-linux-gcc -v能够正常显⽰版本信息,但是输⼊sudo arm-linux-gcc -v后却显⽰命令⽆法找到.我试过很多种⽅法,⽐如sudo -s切换到root后,编辑$PATH,将编译器路径加⼊.然后exit到普通⽤户.仍然不能执⾏sudo arm-linux-gcc -v. 这⾥如果哪位⼤⽜知道是什么原因的可以留⾔告诉我,谢谢:)由于编译.c的⽂件后,要产⽣新的⽂件,因此要super的权限.⼜不能使⽤sudo arm-linux-gcc,于是可以先sudo -s到root⽤户,再使⽤arm-liunux-gcc来进⾏编译.⼆. ⽬标板执⾏环节我是使⽤FTP在主机和⽬标板之间传送⽂件.传送过去后要注意改变权限.这⾥要注意⼏点:1. 要确定ftp过来后的⽂件的默认的存放路径.这个只要在⽬标机的终端机上确认下即可.(这个地⽅没有确认可能就会显⽰找不到命令)2. 传送过来的⽂件要更改权限才能运⾏.可以⽤:chmod 777 hellochmod +x hello3. 执⾏./hello这时,报错:-/bin/sh: ./hello: not found三. 问题排除⽤过绝对路径也试过之后就确定并不是⽂件是否存在的问题,⽽是这个⽂件并不能被执⾏.GOOGLE之后可以发现,排除上⾯提到问题后,就将问题定位到动态链接库上.于是在主机上⽤arm-linux-gcc -static -o 来进⾏静态编译.然后将新产⽣的⽂件传到⽬标板上.可以发现通过静态编译的⽂件明显⽐动态编译的要⼤.然后再次执⾏./hello 可以看到屏幕上出现了久违的Hello,World!问题到这⾥还没有完,我们可以再思考下怎么彻底解决,⽽不是每次都使⽤静态编译.既然是动态库引起的问题,那么应该和编译器的版本有关.在安装编译环境的时候同时安装了3.4.1和4.3.3两个版本.⽤户⼿册上说其中3.4.1是⽤来编译u-boot的,4.3.3版本是⽤来编译Linux内核和Qtipia的,两个版本均可以⽤来编译应⽤程序.既然我们的内核使⽤4.3.3编译的,⽽我们刚才编译hello是使⽤3.4.1编译的,那么会不会是这个原因呢?于是我们试⼀下,将$PATH中的原来包含3.4.1/bin 的路径改为 4.4.3/bin . 修改的⽅法⽹上有很多.(直接export PATH=”想要的路径”)再次编译,下载.⽬标板上执⾏,成功显⽰”Hello,World!”.可以看到系统中动态库的⽀持和编译器还是有关的./lzjsky/p/3730183.html。
交叉工具链的生成/uid-9185047-id-3158569.html软件平台:ubuntu 10.10主机编译器:gcc 4.5.1硬件平台:s3c24101、准备环境sudo apt-get install bison flex texinfo automake libtool cvs patch libncurses5-dev aria2 curl g++ subversion gawk cvsd expat gperf libexpat-dev注:有的没安装,第4步无法生成makefile,要先安装gperf2、下载crosstool-ng软件包crosstool-ng-1.17.0.tar.bz23、相应目录的建立sudo mkdir -p /usr/local/armsudo chmod 777 /usr/local/arm // 将arm目录权限设置为777cd /usr/local/armmkdir 4.7.2sudo mkdir -p /home/crosstoolcd /home/s3c2410/crosstoolsudo mkdir crosstool-build crosstool-install src-4.7.2(编译目录、安装目录、目标源码目录)4、安装crosstool-ngcp crosstool-ng-1.17.0.tar.bz2 /home/s3c2410/crosstool/解压crosstool-ng-1.17.0.tar.bz2,tar -xvf crosstool-ng-1.17.0.tar.bz2进入目录,进行配置:cd /home/s3c2410/crosstool/crosstool-ng-1.17.0将/home/s3c2410/crosstool/crosstool-install/lib/ct-ng.1.17.0/下的p cp到/etc/bash_completion.d配置安装目录为/home/s3c2410/crosstool/crosstool-install注:有的没安装gperf,无法生成makefile,要先安装gperfsudo ./configure --prefix=/home/crosstool/crosstool-installsudo make --编译sudo make install --安装5、配置编译的交叉编译工具链cd /home/s3c2410/crosstool/crosstool-build --进入编译目录cp/home/s3c2410/crosstool/crosstool-ng-1.17.0/samples/arm-unknown-linu x-gnueabi/* ./sudo cp crosstool.config .config --把crosstool-config --当作默认的配置文件sudo /home/crosstool/crosstool-install/bin/ct-ng menuconfig --图形界面进行配置,若该句无法执行可能是终端窗口太小弹出以下菜单,此菜单主要用于交叉编译工具链的环境配置。
ubuntu下搭建MIPS交叉编译环境 由于要在本地编译程序,在嵌⼊式系统上运⾏,因此需要在本地装编译器,⽬前主要需要mipsel-linux-gcc。
之前⼀直以为可以⽤apt-get install找到,结果找了好久找不到,发现还是得⾃⼰编。
主要是参考上⾯的那个链接,然后这对⾃⼰需求改了改配置。
1. 环境系统:Ubuntu 16.04软件: buildroot该软件可以编译⽤于 mips, arm等等的C编译器。
2. 下载tar -jxvfcd buildroot3. 配置buildroot (重要)make cleanmake menuconfig会出现选择菜单,如下图:选择第⼀项“Target Architecture”, 改成 MIPS (little endian)另外,选择“Toolchain”, 将"kernel headers"改成⾃⼰主机上的Linux版本(及运⾏改编译器的主机)可以在主机上通过 uname -r 或者 cat /proc/version查看。
原⽣的是只有gcc部分,没有g++部分,需要对编译C++程序,则在菜单⾥选择 Enable c++选项(按 y 选取)。
⽤于编译python的配置选项我主要⽤这个来编译python放在嵌⼊式设备系统上⽤,最开始就按照上⾯的选项,编译⼀般的程序没问题,编译python会出现:unknow type name 'wchar_t' 错误,这个需要在这⾥的⼯具⾥选⼏个选项;a1. 在配置⾥选择对wchar的⽀持;a2. 退出Target options,进⼊Target packages,在Target packages⾥再添加⼏个选项(这⾥我没看不配置这个会出什么问题,这个⾥⾯到底做什么的,我直接按照进⼊Interpreter lanaguages and scripting 选项,选择python选项,然后吧core python modules⾥的都选了吧~(编译⼀次太费时了,缺个什么⼜得重新编译这个⼯具链)配置完了后,保存,并退出。
在Ubuntu10.04驱动开发环境搭建一、准备开发工具开发工具主要有gcc、gdb、make在Ubuntu中可以通过下面这个命令安装:$apt-get install build-essential我没有执行上面的命令,因为我在之前编译过Android,相关工具已经配置好了:$sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos libncurses5-dev二、下载Linux源代码linux源码可以通过以下几种途径获得:1)直接去下载2)通过包管理工具下载源码用下面指令查看可用的源码包:$ sudo apt-cache search linux-sourcelinux-source - Linux kernel source with Ubuntu patcheslinux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches在Ubuntu中可以通过下面这个命令下载:$apt-get install linux-source-(版本号)$sudo apt-get install linux-source-2.6.32下载后的文件linux-source-2.6.32.tar.bz2在/usr/src目录中,解压:$su – root$cd /usr/src$tar jxvf linux-source-2.6.32.tar.bz2解压后在/usr/src目录下产生了一个linux-source-2.6.32源码目录三、编译内核依次执行下列命令(必须都执行,否则编译错误,如果不是root用户,命令前加sudo):1)配置内核$su – root$cd /usr/src/linux-source-2.6.32$make config或$make menuconfig或者$ sudo cp ../linux-headers-2.6.32-21-generic/.config ./.config如果当前运行内核打开了CONFIG_IKCONFIG_PROC参数,则可以$zcat /proc/config.gz > .config$make oldconfig2)编译内核2.6版本后前两步不需要,直接make即可$make prepare$make scripts$make3)安装模块$make modules 这一步不需要$make module_install执行结束之后,会在/lib/modules下生成新的目录/lib/modules/2.6.32.44+drm33.19四、生成镜像文件1)生成内核镜像文件$make bzImage执行完成后将在arch/i386/boot/目录下生成bzImage镜像文件,使用下面命令安装到系统的/boot目录下:$sudo make installsh /usr/src/linux-source-2.6.32/arch/x86/boot/install.sh 2.6.32.44+drm33.19 arch/x86/boot/bzImage \ System.map "/boot"命令完成后在/boot目录下,将多了vmlinuz-2.6.32.44+drm33.19和System.map-2.6.32.44+drm33.19两个文件或者直接拷贝$ sudo cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.32.44+drm33.192)生成要载入ramdisk的映像文件如果linux系统按照在scsi磁盘上,这部是必须的,否则可以跳过。
Workbench Linux IDE安装与使用简介1、安装Workbench IDE安装环境为虚拟机VMware7.1.3、Ubuntu10.04.3LTS Linux平台。
1.1、设置VMware共享目录sharedfolder,将Wind River linux4.1安装文件复制到共享目录sharedfolder,在Ubuntu终端中查看安装文件是否完整。
1.2、判断Ubuntu Linux系统位数,安装Workbench平台工程编译所需工具包。
显示i686i386均是32位操作系统,x86_64是64位操作系统。
如果是32位操作系统,输入如下命令安装工具包,如果是64位操作系统,查看Wind River linux4.1安装文件目录下的说明文件进行相应安装。
sudo apt-get install autoconf automake\libtool g++g++-4.4comerr-dev docbook-xml docbook-xsl\doxygen python-libxml2zip gettext libstdc++6-4.4-dev\gconf2texlive-base texlive-binaries libltdl-dev\libncurses5-dev libreadline5-dev libxml2-dev\zlib1g-dev patch ss-dev texinfo tcl8.4portmap\x11proto-core-dev x11proto-xext-dev xtrans-dev\libx11-dev libxcb1libxext-dev libxinerama-dev\tex-common xutils-dev x11-xkb-utils libcap-dev\libexpat1-dev rarian-compat groff-base time libacl1-dev\gawk xsltproc base-files bash bc binutils bsdmainutils\bzip2cdparanoia coreutils cpio cpp-4.4cups-bsd\cups-client cvs debianutils desktop-file-utils\diffutils dpkg e2fslibs ed file findutils fontconfig\gcc-4.4gconf2ghostscript gnupg grep gzip hostname\imagemagick install-info less libaccess-bridge-java\libaccess-bridge-java-jni libasound2libblkid1\libc-bin libc-dev-bin libc6libc6-dev libcap2\libcomerr2libexpat1libgcc1libgl1-mesa-glx\libidn11libkeyutils1liblocale-gettext-perl\libmagic1libncurses5libreadline5libsensors4\libss2libstdc++6libuuid1libx11-6libxau6libxdmcp6\libxext-dev libxext6libxml2-utils libxrandr2\libxrender1linux-headers-2.6.32-22linux-image-2.6.32-22-generic-pae\linux-libc-dev locales login lzma make man-db manpages-dev\mawk mlocate mono-runtime ncurses-base ncurses-bin\net-tools ntpdate openjdk-6-jre-headless openjdk-6-jre-lib\openssh-client passwd perl perl-base perl-modules\pkg-config procps python-apport python-gst0.10\python-imaging python-zope.interface python2.6\python2.6-minimal rsync sane-utils sed shared-mime-info\sysv-rc sysvinit-utils tar tzdata udev unzip util-linux\w3m x11-utils x11-xserver-utils x11proto-kb-dev\xauth xfonts-encodings xfonts-utils xorg-docs-core\xterm zip zlib1g1.3、在Ubuntu中/bin/sh默认指向dash,为解决在Workbench中因此产生的创建平台工程出错的问题,输入如下命令,改变/bin/sh指向bash。
实验报告- 一、交叉编译环境搭建:在没有root 用户权限时,用sudo 来执行超级权限的命令。
解压缩后,最好要加入path 中,方便使用。
Path 文件在vim /home/ubuntu/.bashrc 加入的语句为export PATH=$PATH:/usr/local/arm/2.95.3/bin二、Ubuntu 10.04 下安装配置NFS安装nfs后,要创建共享目录,是为了上传文件用,而串口作为命令控制和输出的功能。
而且必须要设定好权限允许读写。
然后重启nfs服务。
注意:实际的程序文件保存在共享文件夹后,并没有上传到板卡的存储上,还是存在在宿主机的存储中,两者mount在一起,运行时,板卡执行是共享文件夹的程序。
三、挂载nfs文件系统配置minicom, /dev/ttyS0是表示com串口端口1,配置ip后,挂载nfs文件系统,mount两个文件夹。
四、Hello程序测试用arm-linux-gcc 来编译文件,copy到共享目录后,在mincom里执行程序。
五、编程实验1、Client程序:若是自己创建的配置文件,需要替换最后的回车符为文字结束符。
2、server程序:在while中不断等待客户端连入时,需要把每次READ输入参数的功能创建一个新的线程来响应,而不影响下一次客户端的连入。
ret=pthread_create(&id,NULL,(void*)thread,NULL);创建一个新的线程。
这个thread函数里完成的功能是,一旦客户端输入,即刻打出输入字符,并close这个线程。
3、makefile:执行顺序与行排列无关,注意编译要用超级用户,并且server 程序编译要带 lpthread,连接多线程的库。
综述,第一次实际接触到板卡,对开发过程和开发模式有了实质性的飞跃。
对linux下的开发有了初步的了解。
并发现了很多自己存在的问题。
理论和实际操作有很大差距,在实际操作时,会出现很多想象不到的问题。
Opencv交叉编译到ARM(基于Qt)一、开发环境:环境:ubuntu10.04交叉编译工具:gcc version4.5.1(ctng-1.8.1-FA)友善的东西opencv版本:OpenCV-2.3.1a.tar.bz2(这里可以下载:/projects/opencvlibrary/files/)cmake:cmake version2.8.0()*:前提是Qt交叉编译已经完成,并能正常使用。
一些依赖:在终端运行:sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev安装:cmakeapt-get install cmake-guiapt-get install cmake解压:tar xvf OpenCV-2.3.1.tar.bz2我使用的是天嵌提供的交叉编译工具EABI_4.3.3。
安装在/opt/EmbedSky/4.3.3/bin/目录下,解压后,进入目录cd OpenCV-2.3.1运行:cmake-gui如果没有安装,系统会提示你安装选择source file 选择build目录点configure然后选择:next填路径:Operating System:arm-none-linuxCompilers:是交叉编译工具GCC与G++的目录,图中是我的目录Target Root:****点Finish然后再回到Cmake目录下:在这里选择该先与不先的东西,同时因为我之前在x86上编译过所以我把CMAKE_INSTALL_PREFIX改成:/usr/local/arm同时添加了WITH_QT因为添加WITH_QT_OPENGL时编译出错,所以后来去掉了。
Ubuntu 10.04下运用crosstool-ng-1.9.0建立arm-linux交叉工具链构建一个交叉工具链供嵌入式系统开发使用是一个令人恐惧的景象,需要钢铁般的意志,需要几天(如果不是几个星期)的功夫,需要具备许多的 Unix 和GNU 知识……”正式基于这一点,我们选择开源工具crosstool-ng,来制作自己的交叉编译工具链。
Crosstool现在也有好几个版本,在这里我选择crosstool-ng-1.9.0这个工具包。
我所选的主机系统是Ubuntu10.04。
在制作交叉编译工具之前要安装各种各样的编译工具,因为Ubuntu系统的方便性,我们可以通过具体的命令在线安装所需的软件。
下面将是具体的制作交叉编译的过程;一、安装所需的工具包$ sudo apt-get install g++ libncurses5-dev bison flex texinfo automake libtool patch gcj cvs cvsd gawk二、下载交叉编译工具所用的文件,在制作交叉编译的过程中,需要在线下载这个编译工具包,考虑到网速的问题和编译的时间问题,提前将这些包下载下来,放在指定的目录下,可以大大节省很多的编译时间,考虑到各种包的下载问题,这个百度文库又不能上传软件包,我就将所有的下载路径附在文章后面,同仁们可以去具体的地方下载!三、安装crosstool-ng-1.9.0.tar.bz2的工具。
安装所需的crosstool-ng-1.9.0,也可在这个地址下/old_news下载crosstool-ng的工具包。
下面是详细的安装步骤:#cd //回到家目录#mkdir crosstool //建立crosstool目录#cp ~/下载/tar/crosstool-ng-1.9.0.tar.bz2 ./crosstool //拷贝crosstool源码包到crosstool目录下#cd crosstool //进入crosstool目录#tar jxvf crosstool-ng-1.9.0.tar.bz2 //解压源码包考虑到后续要用的各种目录,我这里先建立好所需的目录#mkdir crosstool-build crosstool-install src //解压完后建立安装目录编译目录和源码包目录,这几个目录和crosstool-ng-1.9.0目录并列,如下图所示:#cd crosstool-ng-1.9.0 //进入crosstool目录#./configure --prefix=~/crosstool/crosstool-install# make //编译# sudo make install //安装#cd crosstool-build/ //进入crosstool-build目录#cp ../crosstool-ng-1.9.0/samples/arm-unknown-linux-gnueabi/* ./ //拷贝交叉工具链到crosstool-build目录下#mv crosstool.config .config //修改文件名#../crosstool-install/bin/ct-ng menuconfig此刻会出现一个图形配置界面,在此配置界面下,可以按照自己开发板的实际情况来进行配置:1、设定源码包路径和交叉编译器的安装路径。
Ubuntu 10.04(64位)下载并编译Android 2.2 源码[只有11条命令]为了方便,我把所有操作写成了命令,按顺序(软件安装--源码下载--编译)执行成功即可:1. sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev ia32-libs x11proto-core-devlibx11-dev lib32readline5-dev lib32z-dev java-common unixodbc2. sudo apt-get install sun-java6-jdk3. cd4. mkdir -p software/bin5. curl /repo >software/bin/repo6. chmod a+x software/bin/repo7. mkdir -p software/android/src/new8. cd software/android/src/new9. repo init -u git:///platform/manifest.git -b froyo10. repo sync11. make -j4=========================================================== ======================================================== 1.前言本文叙述了如何从零开始搭建基于Google官方Android 2.2.1(froyo)源码的开发环境,包括如何下载源代码、编译源代码,以及在模拟器中运行编译生成的镜像。
文中开发机是基于Ubuntu 10.04的,同样适用于其他版本的Ubuntu。
ubuntu10.04下建立交叉编译工具链(支持软浮点)全过程
参考了网上的不少的资料,花了五个小时终于完成了,记录下全过程供大家分享。
用到的源码包如下,建议新手全部放在/home/usr/downloads/ 目录下。
以下操作在用户权限下进行。
=======================================================================
arm-linux-gcc-3.4.1.tar.gz
glibc-2.3.3.tar.gz
linux-2.6.8.tar.gz
crosstool-0.43.tar.gz
binutils-2.15.tar.gz
glibc-linuxthreads-2.3.3.tar.gz
binutils-2.18.tar.gz --安装用
编译一次至少要花半个小时,如果因为依赖软件没有安装中途会报错退出,只有从头再来,那样很浪费时间的。
sudo apt-get install bison flex build-essential patch libncurses5-dev
由于ubuntu10.04自带的ld ,as版本太高的原因,需要安装binutils的2.18版本,然后替换系统中的2.20版本。
方法如下:
$cd downloads
$tar xzvf binutils-2.18.tar.gz
$cd binutils-2.18
$./configure --prefix=/tmp/binutils --disable-nls (-prefix后面的是生成可执行文件存放的位置可以自己定义)
$make all
$make install
编译成功后在/tmp/binutils/bin/中就生成了ld和as程序的可执行文件
重新链接/usr/bin/ld 和/usr/bin/as文件
$sudo rm /usr/bin/ld /usr/bin/as //删除2.20的ld,as
$sudo ln –s /tmp/binutils/bin/ld /usr/bin/
$sudo ln –s /tmp/binutils/bin/as /usr/bin/
然后可运行ld –v 和as –v 查看版本是否为2.18。
安装2.18版本可解决出现的 ld as " version too old "问题。
2. ubuntu10.04下默认的GCC版本是4.4.3,但这个不是版本越高越好,版本太高,对语法什么的要求也高,编译不成功,降低版本吧:
#sudo apt-get install gcc-4.1 //安装4.1的GCC,需要联网
#sudo rm /usr/bin/gcc //删除之前4.4.3的快捷方式,4.4.3的GCC并未删除#sudo ln -s /usr/bin/gcc-4.1 /usr/bin/gcc //建立4.1的快捷方式
这是由于crosstool中定义了GCC的版本的上下线,最高也就到4.1,在其配置的时候会对这个版本信息进行检测,不在其规定范围就报错了。
3.修改sh版本
如果运行
ls -la /bin/sh
看到链接的是 dash ,则请运行以下命令
sudo dpkg-reconfigure dash
选择 no 以删除 dash
此处如果不改好的话,编译时会出现错误
(在建立交叉编译环境后,可以在运行该命令选择yes重新安装dash)。
4. 解压crosstool-0.43源码包,修改配置文件。
$tar xzvf crosstool-0.43.tar.gz
$cd crosstool-0.43 //下面的操作路径都在此文件夹
$cp demo-arm-softfloat.sh arm-softfloat.sh //复制并建立新文件arm-softfloat.sh $gedit arm-softfloat.sh //用文本编辑器打开,也可用vim打开。
修改文件中的内容:
TARBALLS_DIR=$HOME/downloads //表示下载的源码的存放目录
RESULT_TOP=/opt/crosstools //表示生成的工具链的存放目录
为:
TARBALLS_DIR=/home/usr/downloads(源码存放目录)
RESULT_TOP=/home/usr/crosstools(生成工具链目录)若使用默认位置安装的话会因为权限问题出错。
修改这一句:eval `cat arm-softfloat.dat gcc-3.4.1-glibc-2.3.3.dat` sh all.sh --notest //红色为自己所选的GCC和GLIBC的版本号,可以根据自己的实际情况进行修改。
再修改 gcc-3.4.1-glibc-2.3.3.dat文件,过程如下:
$gedit gcc-3.4.1-glibc-2.3.3.dat
修改后内容为:
BINUTILS_DIR=binutils-2.15
GCC_DIR=gcc-3.4.1
GLIBC_DIR=glibc-2.3.3
LINUX_DIR=linux-2.6.8
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.3.3
注意自己的工具的版本最好和这里是对应的,省的编译器找不到报错或是连网下载浪费时间。
再修改arm.dat
$gedit arm.dat
修改为:
KERNELCONFIG=`pwd`/arm.config
TARGET=arm-softfloat-linux-gnu
TARGET_CFLAGS="-o"
5. 将linux-2.
6.8源码包目录下的/script/kconfig/mconf.c中的91行
static struct menu *current_menu;
改为
struct menu *current_menu;
这样是为了解决"*current_menu"相关的错误。
6. 执行sh arm-softfloat.sh,一个小时左右你就可以看到/home/usr/crosstools目录下有你想要的东西了。
7.修改环境变量
修改环境变量有多种方法我们介绍两种
(1)第一种方法:在当前用户目录的.bashrc中添加如下环境变量的内容
$export
PATH=$PATH:/home/linux/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/b in
(2)第二种方法:或直接修改/home/linux/.bashrc文件
$cd /home/linux
$gedit .bashrc
在第一行添加如下内容:
PATH=$PATH:/home/linux/crosstool/gcc-3.4.1-glibc-2.3.3/arm-softfloat-linux-gnu/b in
然后执行
$source .bashrc
8.执行如下命令
$ arm-softfloat-linux-gnu-gcc -v
显示
Reading specs from /home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/ gcc/arm-softfloat-linux-gnu/3.4.5/specs
Configured with: /home/david/downloads/crosstool-0.43/build/arm-softfloat-linux-gnu/gcc-3.4.5-gli bc-2.3.6/gcc-3.4.5/configure --target=arm-softfloat-linux-gnu --host=i686-host_pc-linux-gnu
--prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux -gnu --with-float=soft --with-headers=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat -linux-gnu/arm-softfloat-linux-gnu/include
--with-local-prefix=/home/david/project/crosstool/gcc-3.4.5-glibc-2.3.6/arm-soft float-linux-gnu/arm-softfloat-linux-gnu --disable-nls --enable-threads=posix --enable-symvers=gnu --enable-__cxa_atexit --enable-languages=c,c++ --enable-shared --enable-c99 --enable-long-long
Thread model: posix
gcc version 3.4.1
ok交叉编译环境创建成功!
9.恢复我们修改的系统配置:
恢复gcc为4.4
$sudo rm /usr/bin/gcc
$sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
重新安装dash
$sudo dpkg-reconfigure dash 选择 yes 以重新安装 dash
到此为止就大功告成了,哈哈。