交叉编译工具链的安装配置.doc_第1页
交叉编译工具链的安装配置.doc_第2页
交叉编译工具链的安装配置.doc_第3页
交叉编译工具链的安装配置.doc_第4页
交叉编译工具链的安装配置.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

交叉工具链的生成/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-linux-gnueabi/* ./sudo cp crosstool.config .config -把crosstool-config -当作默认的配置文件sudo /home/crosstool/crosstool-install/bin/ct-ng menuconfig -图形界面进行配置,若该句无法执行可能是终端窗口太小弹出以下菜单,此菜单主要用于交叉编译工具链的环境配置。Paths and misc options -(/home/crosstool/src-4.7.2) Local tarballs directory -目标源码目录(/usr/local/arm/4.7.2) Prefix directory -最后生成的交叉编译工具链存放的目录(2) Number of parallel jobs -主机是双核处理器的可以选2 另一说双核写4,我写的4Target options -(armv4t) Architecture level(arm9tdmi) Emit assembly for CPU(arm920t) Tune for CPU(vfp) Use specific FPUToolchain options -(unknown) Tuples vendor string这里可以设置个性化,不填就是unknow,可以设置自己的个性名 如填“doc”,这样产生的编译器前缀就是:arm-doc-linux-gnueabi-Operating System -Linux kernel version (3.6.3) - linux-3.6.11.tar.xz/ linux-3.6.3.tar.xz/linux-3.7.2.tar.bz2下面这些与目标源码有关:Binary utilities -binutils version (2.21.1a) -binutils-2.21.1a.tar.bz2/binutils-2.21.1.tar.bz2/binutils-2.22.tar.bz2/ binutils-2.23.1.tar.bz2C compiler -gcc version (4.7.2) - gcc-4.7.2.tar.bz2/ gcc-4.5.2.tar.bz2 Fortran Java无法直接修改的,可以在最后手动从 .config 中加“#”屏蔽C-library -glibc version (2.14.1) -glibc-2.15.tar.bz2/glibc-2.14.1.tar.bz2/ glibc-linuxthreads-2.1.2.tar.gzglibc-2.1.2.tar.gz/ glibc -2.16.0.tar.xzglibc-ports-2.16.0.tar.gz/ glibc-ports-2.14.1.tar.xz* Force unwind support (READ HELP!)Debug facilities - gdb - Companion libraries -GMP version (5.0.2) -gmp-5.0.2.tar.bz2/ gmp-5.1.1.tar.bz2MPFR version (3.1.0) -mpfr-3.1.0.tar.xz/ mpfr-3.1.2.tar.xz/ mpfr-3.1.2.tar.bz2PPL version (0.11.2) - ppl-0.11.2.tar.bz2/ ppl-1.0.tar.bz2/ ppl-1.0.tar.xzCLooG/ppl version (0.15.11) -cloog-ppl-0.15.11.tar.gz MPC version(0.9)-mpc-0.9.tar.gz/ mpc-1.0.1.tar.gz/ mpc-2.4.1.tar.gzlibelf version (0.8.13) -libelf-0.8.13.tar.gz保存退出。vi .config前面无法在设置窗口中设置java和fortran的,用“#”将所有带JAVA和FORTRAN的屏蔽在CT_MPFR=y后面增加一行CT_MPC=y在CT_MPFR_VERSION=3.1.0后面增加两行CT_MPC_V_0_8_13=yCT_MPC_VERSION=0.8.13保存退出。注:若编译失败再次用菜单图形化设置后,注意查看.config之前修改的内容是否还原了,最好在查看一次。6、编译交叉工具链编译的时候会自动下载下面的软件包,也可以自己先下载好放在src-4.5.1目录下,这样编译的是时候就比较快了。linux-3.6.11.tar.xz/ linux-3.6.3.tar.xz/linux-3.7.2.tar.bz2binutils-2.21.1a.tar.bz2/ binutils-2.21.1.tar.bz2/binutils-2.22.tar.bz2/ binutils-2.23.1.tar.bz2glibc-2.15.tar.bz2/glibc-2.14.1.tar.bz2/ glibc-linuxthreads-2.1.2.tar.gzglibc-2.1.2.tar.gz/ glibc -2.16.0.tar.xzglibc-ports-2.16.0.tar.gz/ glibc-ports-2.14.1.tar.xzlibelf-0.8.13.tar.gzgcc-4.7.2.tar.bz2 mpfr-3.1.0.tar.xz/ mpfr-3.1.2.tar.xz/ mpfr-3.1.2.tar.bz2gmp-5.0.2.tar.bz2/ gmp-5.1.1.tar.bz2mpc-0.9.tar.gz/ mpc-1.0.1.tar.gz/ mpc-2.4.1.tar.gzppl-0.11.2.tar.bz2/ ppl-1.0.tar.bz2/ ppl-1.0.tar.xzcloog-ppl-0.15.11.tar.gz/没能自动下载成功的,解决方法:自己网上搜索下载后放到/home/s3c2410/crosstool/src-4.5.1下即可。duma_2_5_15.tar.gz/ duma_2_5_15.zipstrace-4.7.tar.bz2expat-2.1.0.tar.gzltrace_0.5.3.orig.tar.gz/ ltrace_0.3.10. tar.gzncurses-5.8.tar.gz/ ncurses-5.9.tar.gzdmalloc-5.5.2.tgz/ dmalloc-5.4.2.tgz在终端执行sudo /home/s3c2410/crosstool/crosstool-install/bin/ct-ng build -开始编译expat文件的问题,由于事先已经下载的相关文件存放在资源目录中,所以,应该是下载文件问题。因此,将资源目录下的该文件删除,让安装软件自己去下载。rootubuntu:/home/sdust/crosstool/crosstool-build# rootubuntu:/home/sdust/crosstool/crosstool-build# rm ./src5/exp*rootubuntu:/home/sdust/crosstool/crosstool-build# ls ./src5/e*ERROR configure: error: expat is missing or unusableERROR make2: * configure-gdb Error 1ALL make2: Leaving directory /home/andy/crosstool-ng/build13/.build/mipsel-ls2f-linux-gnu/build/build-gdb-crossERROR make1: * all Error 2ALL make1: Leaving directory /home/andy/crosstool-ng/build13/.build/mipsel-ls2f-linux-gnu/build/build-gdb-crossERROR ERROR ERROR Error happened in: mainscripts/crosstool-NG.shERROR ERROR For more info on this error, look at the file: build.logERROR There is a list of known issues, some with workarounds, in:ERROR /home/andy/crosstool-ng/install/share/doc/ct-ng-1.13.0/B - Known issues.txtERROR ERROR Build failed in step Extracting and patching toolchain components一开始以为是没有装expat,sudo apt-get install expat后发现该软件已经装好,到/usr/lib目录下并没有发现libexpat.so文件,到网上查了下也没有相关的信息。因为之前在编译 android文件系统的机器上用crosstool-ng编译成功过一个交叉编译链,所以觉得应该是没有安装相关包,所以在本机器上直接将编译 android文件系统需要的相关包安装上(详见没博客上得编译android文件系统有关文章),并sudo apt-get install libexpat-dev后再次编译,最后成功编译出需要的工具链。 编译了两个小时左右,不过很庆幸的是没出现错误(其实我试了很多次了)。接下看下成果。sudo cd usr/local/arm/4.7.2/bin/sudo ./arm-unknown-linux-gnueabi-gcc -v打印如下信息:Using built-in specs.COLLECT_GCC=./arm-unknown-linux-gnueabi-gccCOLLECT_LTO_WRAPPER=/usr/local/arm/4.7.2/libexec/gcc/arm-unknown-linux-gnueabi/4.5.1/lto-wrapperTarget: arm-unknown-linux-gnueabiConfigured with: /home/s3c2410/crosstool/crosstool-build/.build/src/gcc-4.5.1/configure -build=i686-build_pc-linux-gnu -host=i686-build_pc-linux-gnu -target=arm-unknown-linux-gnueabi -prefix=/usr/local/arm/4.5.1 -with-sysroot=/usr/local/arm/4.5.1/arm-unknown-linux-gnueabi/sysroot -enable-languages=c,c+ -disable-multilib -with-arch=armv6 -with-cpu=arm1176jzf-s -with-tune=arm1176jzf-s -with-fpu=vfp -with-float=soft -with-pkgversion=crosstool-NG 1.13.2 -disable-sjlj-exceptions -enable-_cxa_atexit -disable-libmudflap -disable-libgomp -disable-libssp -with-gmp=/home/s3c2410/crosstool/crosstool-build/.build/arm-unknown-linux-gnueabi/build/static -with-mpfr=/home/s3c2410/crosstool/crosstool-build/.build/arm-unknown-linux-gnueabi/build/static -with-ppl=/home/s3c2410/crosstool/crosstool-build/.build/arm-unknown-linux-gnueabi/build/static -with-cloog=/home/s3c2410/crosstool/crosstool-build/.build/arm-unknown-linux-gnueabi/build/static -with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc+,-Bdynamic -lm -enable-threads=posix -enable-target-optspace -with-local-prefix=/usr/local/arm/4.5.1/arm-unknown-linux-gnueabi/sysroot -disable-nls -enable-c99 -enable-long-longThread model: posixgcc version 4.5.1 (crosstool-NG 1.13.2)接下来将命令都链接成arm-linux-,这样以后操作比较方便。先ls一下,一一完成链接。sudo ln -s arm-unknown-linux-gnueabi-addr2line arm-linux-addr2linesudo ln -s arm-unknown-linux-gnueabi-ar arm-linux-arsudo ln -s arm-unknown-linux-gnueabi-as arm-linux-assudo ln -s arm-unknown-linux-gnueabi-c+ arm-linux-c+sudo ln -s arm-unknown-linux-gnueabi-c+filt arm-linux-c+filtsudo ln -s arm-unknown-linux-gnueabi-cpp arm-linux-cppsudo ln -s arm-unknown-linux-gnueabi-g+ arm-linux-g+sudo ln -s arm-unknown-linux-gnueabi-gcc arm-linux-gccsudo ln -s arm-unknown-linux-gnueabi-gcc-4.7.2 arm-linux-gcc-4.7.2sudo ln -s arm-unknown-linux-gnueabi-gcov arm-linux-gcovsudo ln -s arm-unknown-linux-gnueabi-gprof arm-linux-gprofsudo ln -s arm-unknown-linux-gnueabi-ld arm-linux-ldsudo ln -s arm-unknown-linux-gnueabi-ldd arm-linux-lddsudo ln -s arm-unknown-linux-gnueabi-nm arm-linux-nmsudo ln -s arm-unknown-linux-gnueabi-objcopy arm-linux-objcopysudo ln -s arm-unknown-linux-gnueabi-objdump arm-linux-objdumpsudo ln -s arm-unknown-linux-gnueabi-populate arm-linux-populatesudo ln -s arm-unknown-linux-gnueabi-ranlib arm-linux-ranlibsudo ln -s arm-unknown-linux-gnueabi-readelf arm-linux-readelfsudo ln -s arm-unknown-linux-gnueabi-size arm-linux-sizesudo ln -s arm-unknown-linux-gnueabi-strings arm-linux-stringssudo ln -s arm-unknown-linux-gnueabi-strip arm-linux-stripsudo ln -s arm-unknown-linux-gnueabi-gcc arm-linux-ccsudo ln -s arm-unknown-linux-gnueabi-ct-ng.config arm-linux-ct-ng.configsudo ln -s arm-unknown-linux-gnueabi-elfedit arm-linux-elfeditsudo ln -s arm-unknown-linux-gnueabi-gcc-ar arm-linux-gcc-arsudo ln -s arm-unknown-linux-gnueabi-gcc-nm arm-linux-gcc-nmsudo ln -s arm-unknown-linux-gnueabi-gcc-ranlib arm-linux-gcc-ranlibsudo ln -s arm-unknown-linux-gnueabi-ld.bfd arm-linux-ld.bfdsudo ln -s arm-unknown-linux-gnueabi-gdbtui arm-linux-gdbtuisudo ln -s arm-unknown-linux-gnueabi-gdb arm-linux-gdbvim /etc/bash.bashrc在该文件最后添加链接路径:export PATH=$PATH:/usr/local/arm/4.7.2/bin/export PATH保存文件。sudo source /etc/profile到此arm-linux-gcc4.7.2-armv4t-vfp交叉编译器制作完成,以后就可以用arm-linux-gcc来编译其他程序了。linux ubuntu下nfs安装配置 1、安装Ubuntu nfs服务器端:root7 # apt-get install nfs-kernel-server 2、配置/etc/exportsUbuntu nfs允许挂载的目录及权限在文件/etc/exports中进行了定义。例如,要将根目录下的data目录共享出来,那么需要在/etc/exports文件末尾添加如下一行:/presonal *(rw,sync,no_subtree_check)#/data *(rw,sync,no_root_squash)其中:/data 是要共享的目录 * 代表允许所有的网络段访问 rw 是可读写权限 sync 是资料同步写入内存和硬盘 no_root_squash 是Ubuntu nfs客户端分享目录使用者的权限,如果客户端使用的是root用户,那么对于该共享目录而言,该客户端就具有root权限。 其它Ubuntu nfs

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论