文档库 最新最全的文档下载
当前位置:文档库 › Cygwin下用crosstool-ng 编译交叉工具链的常见错误及解决办法

Cygwin下用crosstool-ng 编译交叉工具链的常见错误及解决办法

Cygwin下用crosstool-ng 编译交叉工具链的常见错误及解决办法
Cygwin下用crosstool-ng 编译交叉工具链的常见错误及解决办法

Cygwin下用crosstool-ng 编译交叉工具链的常见错误及解决办法2011-02-28 21:22

1、配置crosstool-ng产生的错误

1.1 ncurses headers files were not found

Checking for 'ncurses/ncurses.h'... no

Checking for 'ncurses/curses.h'... no

Checking for 'ncurses.h'... no

Checking for 'curses.h'... no

ncurses headers files were not found

解决方法:

安装:ncurses,、libncurses-devel

1.2 flex none found

Checking for 'flex'... No

flex: none found

Either you are missing entirely the needed tool,

or the version you have is too old.

configure: Bailing out...

解决方法:

安装:flex,flexdll

1.3 automake 1.10 or above was not found

Checking for 'automake'... no

automake 1.10 or above was not found

Either you are missing entirely the needed tool,

or the version you have is too old.

configure: Bailing out...

解决方法:

安装:automake

1.4 libtool 1.5.26 or above was not found

Checking for 'libtool'... no

libtool 1.5.26 or above was not found

Either you are missing entirely the needed tool,

or the version you have is too old.

You can give the path to this tool using: --with-libtool=PATH

configure: Bailing out...

解决方法:

安装:libtool

注:

在配置crosstool-NG时,出现的类似“XXX:none found”的错误,都可以是该工具没有安装,把该工具安装上,重新配置即可。

1.5 ct-ng help命令检查时出错

crosstool-ng 安装成功后,用ct-ng help命令检查时,不认识该命令这多半是添加环境变量失败造成的,这时可以打开

/home/Administrator

目录下的.bashrc查看是否把windows里的其他环境变量添加到了.bashrc文件中,如果把多余的去掉,只保留cgywin自己的环境变量,如下所示:

PATH=/usr/local/bin:/usr/bin:/bin:/opt/crosstool-ng-1.9.3/bin

1.6 配置时的其他错误

在配置crosstool-NG时,也即执行

./configure --prefix=/opt/crosstool-ng

出现的类似“XXX:none found”的错误,都是相应工具没有安装造成的,重新运行setup.exe把该工具安装上,再执行该命令,即可。

2、编译交叉工具链产生的错误

2.1 targets' is *not* case-sensitive

Cygwin窗口的错误信息:

$ ct-ng build

[INFO ] Performing some trivial sanity checks

[ERROR] Your file system in

'/home/Administrator/croosstool-ng/crosstool-ng-1.9.3/targets' is

*not* case-sensitive!

[00:02] / make: *** [build] Error 1

unix 和Linux都是区分大小写的,cygwin既然是模拟unix环境,当然也是区分大小定的。

这个问题好解决,修改一下注册表就行了。

打开注册表,找到如下位置:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\Kernel

把“obcaseinsensitive”的值改为0,再重新启动电脑,cygwin下就区分大小写了。

如果觉得麻烦,可以把如下代码复制到记事本里(case-sensitive.txt):

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session

Manager\kernel]

"obcaseinsensitive"=dword:00000000

然后把记事本的后缀名改为.reg,(case-sensitive.reg),双击reg

(case-sensitive.reg)文件即可,和上面的效果一样。

2.1 Installing static core C compiler failed

Cygwin窗口的错误信息:

[INFO ] Installing static core C compiler

[EXTRA] Configuring static core C compiler

[ERROR] checking for C compiler default output file name... configure: error: C compiler cannot create executablesconf.tab.o

[ERROR] Build failed in step 'Installing static core C compiler'

[ERROR] Error happened in

'/opt/crosstool-ng/lib/ct-ng-1.9.1/scripts/functions' in function

'CT_DoExecLog' (line unknown, sorry)x.o

[ERROR] called from

'/opt/crosstool-ng/lib/ct-ng-1.9.1/scripts/build/cc/gcc.sh' at line # 203 in function 'do_cc_core'il.o

[ERROR] called from

'/opt/crosstool-ng/lib/ct-ng-1.9.1/scripts/build/cc/gcc.sh' at line # 52 in function 'do_cc_core_pass_1'

[ERROR] called from

'/opt/crosstool-ng/lib/ct-ng-1.9.1/scripts/crosstool-NG.sh' at line # 597 in function 'main'

[ERROR] Look at

'/home/Administrator/crosstool-ng/x-tools/arm-apollo-linux-gnueabi/bu ild.log' for more info on this error.

解决办法:

安装gcc4-g++,在编译的时候时需要C++的

参考:

https://www.wendangku.net/doc/5315839928.html,/robin_l/blog/item/3087ffa1875a2d83471064bf.html

2.2 Build failed in step 'Installing D.U.M.A.'

Cygwin窗口的错误信息:

[INFO ] Installing D.U.M.A.

[EXTRA] Copying sources

[ERROR] Build failed in step 'Installing D.U.M.A.'

[ERROR]Error happened in

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug/200-duma .sh' in function 'do_debug_duma_build' (line unknown, sorry)

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug.sh' at

line # 35 in function 'do_debug'

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/crosstool-NG.sh' at line # 597 in function 'main'

[ERROR] Look at

'/home/Administrator/ct-ng-1.9.3/crosstool-ng/x-tools/arm-apollo-linu x-gnueabi/build.log' for more info on this error.

[ERROR] (elapsed: 479:03.42)

[479:07] / make: *** [build] Error 1

Build.log中的提示如下:

[INFO ] Installing D.U.M.A.

[EXTRA] Copying sources

[ERROR] Build failed in step 'Installing D.U.M.A.'

[ERROR] Error happened in

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug/

200-duma.sh' in function 'do_debug_duma_build' (line unknown, sorry)

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug.sh' at

line # 35 in function 'do_debug'

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/crosstool-NG.sh' at line # 597 in function 'main'

[ERROR] Look at '/home/Administrator/ct-ng-1.9.3/crosstool-ng/x-tools/

arm-apollo-linux-gnueabi/build.log' for more info on this error.

[ERROR] (elapsed: 479:03.42)

解决方法:

修改DUMA的Makefile文件:

$ tar -zxvf duma_2_5_15.tar.gz #解压源码包

$ cd duma_2_5_15

打开“GNUmakefile”,添加对cygwin的支持,也就是添加下面红色的一句

# some defaults:

CC=gcc

CXX=g++

AR=ar

RANLIB=ranlib

INSTALL=install

RM=rm

RMFORCE=rm -f

ECHO=echo

ECHOLF=echo

OS=cygwin

接下来重新把duma_2_5_15打包

$ cd ..

$ tar -zcvf duma_2_5_15.tar.gz duma_2_5_15 #重新压缩源码

这个错误让我郁闷了几天,因为在build.log文件里的信息也没说出问题可能出在什么地方。

最后才在INSTALL文件里发现如果是在cygwin下编译需要修改Makefile文件

INSTALL文件的部分内容:

his documents describes if and how the library is installed on your system.

I. Linux/Unix environments (including Cygwin and MinGW):

Configure the options by editing the Makefile.

Read carefully the description of options at top of the Makefile. Take care for the special OS/OSTYPE depending sections.

Especially if you are going to use the LD_PRELOAD mechanism.

Call GNU make often called 'gmake' for building the library.

GNU make is called 'mingw32-make' for MinGW.

Add option 'OSTYPE=msys' when calling make for MinGW.

Add option 'OSTYPE=cygwin' when calling make for Cygwin.

Add option 'OS=osx' when calling make for MacOS X or Darwin.

Add option 'OS=freebsd' when calling make for FreeBSD.

Add option 'OS=netbsd' when calling make for NetBSD.

Add option 'OS=solaris' when calling make for Solaris.

2.3 Build failed in step 'Installing ltrace'

Cygwin窗口的错误信息:

[INFO ] Installing ltrace

[EXTRA] Copying sources to build dir

[EXTRA] Configuring ltrace

[EXTRA] Building ltrace

[ERROR] make[1]: *** [sysdeps/sysdep.o] Error 2

[ERROR] Build failed in step 'Installing ltrace'

[ERROR] Error happened in

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/functions' in

function 'CT_DoExecLog' (line unknown, sorry)

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug/400-ltra ce.sh' at line # 52 in function do_debug_ltrace_build'

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug.sh' at line # 35 in function 'do_debug'

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/crosstool-NG.sh' at line # 597 in function 'main'

[ERROR] Look at

'/home/Administrator/ct-ng-1.9.3/crosstool-ng/x-tools/arm-apollo-linu x-gnueabi/build.log' for more info on this error.

[ERROR] (elapsed: 591:35.21)

[591:39] / make: *** [build] Error 2

Build.log中的提示如下:

[ALL ] make[1]: Entering directory

`/home/Administrator/ct-ng-1.9.3/crosstool-ng/

crosstool-ng-1.9.3_build/

targets/arm-apollo-linux-gnueabi/build/build-ltrace'

[ALL ] arm-apollo-linux-gnueabi-gcc -Wall -g -O2 -iquote

/home/Administrator/

ct-ng-1.9.3/crosstool-ng/crosstool-ng-1.9.3_build/targets/arm-apollo-linux-gnueabi/build/

build-ltrace -iquote

/home/Administrator/ct-ng-1.9.3/crosstool-ng/crosstool-ng-1.9.3_build /

targets/arm-apollo-linux-gnueabi/build/build-ltrace/sysdeps/CYGWIN_NT -5.1 -DSYSCONFDIR="/usr/etc" -c -o main.o main.c

[ALL ] /usr/bin/make -C sysdeps/CYGWIN_NT-5.1

[ALL ] make: Entering an unknown directory

[ALL ] make: *** sysdeps/CYGWIN_NT-5.1: No such file or directory. Stop.

[ALL ] make: Leaving an unknown directory

[ERROR] make[1]: *** [sysdeps/sysdep.o] Error 2

[ALL ] make[1]: Leaving directory

`/home/Administrator/ct-ng-1.9.3/crosstool-ng/

crosstool-ng-1.9.3_build/targets/arm-apollo-linux-gnueabi/build/build -ltrace'

[ERROR] Build failed in step 'Installing ltrace'

[ERROR] Error happened in

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug/

400-ltrace.sh' at line # 52 in function 'do_debug_ltrace_build'

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/build/debug.sh' at line # 35 in function 'do_debug'

[ERROR] called from

'/opt/crosstool-ng-1.9.3/lib/ct-ng-1.9.3/scripts/crosstool-NG.sh' at line # 597 in function 'main'

[ERROR] Look at

'/home/Administrator/ct-ng-1.9.3/crosstool-ng/x-tools/

arm-apollo-linux-gnueabi/build.log' for more info on this error.

[ERROR] (elapsed: 591:39)

解决方法:

在配置文件中把ltrace这一项去掉,原因很简单,ltrace不支持windows,只支持linux,在README文件中有说明,之所以能知道这个是受解决上一个错误的启发,查看了ltrace的README文件,原文如下:

4. Where does it work

---------------------

It works with ELF based Linux systems running on i386, m68k, S/390,

ARM, PowerPC, PowerPC64, IA64, AMD64, SPARC and Alpha processors.

It is part of at least Debian GNU/Linux, RedHat, SuSE, Mandrake...

2.4 Build failed in step 'Installing libelf for the target'

Cygwin窗口的错误信息:

[INFO ] Installing libelf for the target

[EXTRA] Configuring libelf

[EXTRA] Building libelf

[ERROR] make[2]: *** [de.cat] Segmentation fault (core dumped)

[ERROR] make[1]: *** [all-recursive] Error 1

[ERROR] Build failed in step 'Installing libelf for the target'

[ERROR] Error happened in

'/opt/crosstool-ng//lib/ct-ng-1.9.1/scripts/functions' in function 'CT_DoExecLog' (line unknown, sorry)

[ERROR] called from

'/opt/crosstool-ng//lib/ct-ng-1.9.1/scripts/build/companion_libs/libe lf.sh'

at line # 87 in function 'do_libelf_target'

[ERROR] called from

'/opt/crosstool-ng//lib/ct-ng-1.9.1/scripts/crosstool-NG.sh' at line #597 in function 'main'

[ERROR] Look at

'/home/Administrator/crosstool-ng/x-tools/arm-apollo-linux-gnueabi/

build.log' for more info on this error.

[ERROR] (elapsed: 469:21.42)

[469:27] / make: *** [build] Error 2

Build.log的提示如下:

[ALL ] ranlib libelf.a

[ALL] make[2]: Leaving directory

`/home/Administrator/crosstool-ng/crosstool-ng-1.9.1_build/

targets/arm-apollo-linux-gnueabi/build/build-libelf-for-target/lib'

[ALL ] making all in po

[ALL ] make[2]: Entering directory

`/home/Administrator/crosstool-ng/crosstool-ng-1.9.1_build/

targets/arm-apollo-linux-gnueabi/build/build-libelf-for-target/po'

[ALL ] /usr/bin/gencat de.cat

/home/Administrator/crosstool-ng/crosstool-ng-1.9.1_build/

targets/src/libelf-0.8.13/po/de.msg

[ERROR] make[2]: *** [de.cat] Segmentation fault (core dumped)

[ALL ] make[2]: Leaving directory

`/home/Administrator/crosstool-ng/

crosstool-ng-1.9.1_build/targets/arm-apollo-linux-gnueabi/build/build -libelf-for-target/po'

[ERROR] make[1]: *** [all-recursive] Error 1

[ALL ] make[1]: Leaving directory

`/home/Administrator/crosstool-ng/

crosstool-ng-1.9.1_build/targets/arm-apollo-linux-gnueabi/build/build -libelf-for-target'

[ERROR] Build failed in step 'Installing libelf for the target'

[ERROR] Error happened in

'/opt/crosstool-ng//lib/ct-ng-1.9.1/scripts/functions' in function

'CT_DoExecLog' (line unknown, sorry)

[ERROR] called from

'/opt/crosstool-ng//lib/ct-ng-1.9.1/scripts/build/companion_libs/

libelf.sh' at line # 87 in function 'do_libelf_target'

[ERROR] called from

'/opt/crosstool-ng//lib/ct-ng-1.9.1/scripts/crosstool-NG.sh' at line # 597 in function 'main'

[ERROR] Look at

'/home/Administrator/crosstool-ng/x-tools/arm-apollo-linux-gnueabi/

build.log' for more info on this error.

[ERROR] (elapsed: 469:21.42)

这个问题是在用crosstool-ng-1.9.1时出现的,补丁也打了libelf可能用到的工具(libelf0-devel

libelf0,ELFIO,catgets)也都安装了,但都不能解决,年后crosstool-ng出了新版本1.9.3,我就用最新的crosstooo.-ng-1.9.3重新编译,这个错误没有再出现,这也算是解决了吧。

注:

我在编译的过程中还遇到过其他错误,但是都是不可重新的,比如这次编译的时候出现了,再重新编译却又不再出现了了,所以就不再列出。

建议一:

编译过程中遇到错误不知道如何解决时,不防重新编译一次试试。

建议二:

如果建议一不能解决问题,又找不到其他方法,不防看看源码中的README、INSTALL、TODO、VERSION等文件,或者在这里你可以找到答案。

Ubuntu8.04下的ARM交叉编译工具链(arm-linux-)详细介绍.

原文链接与:https://www.wendangku.net/doc/5315839928.html,/u1/58901/showart_1335004.html 实验室的机器配置太低,速度太慢实在是受不了。说是已经升级了,内存从128M升级到了256M。My god!这年头还能到什么地方找那么多128的内存条去阿?哇嘎嘎。真是服了。。。哈哈 打开一个pdf文件要等老半天。基本上没有办法工作。于是想在自己的笔记本上做一个交叉编译环境。我的机器配置也不高,但是相对于实验室的机器来说已经相当不错了。我的机器是单操作系统:只有Ubuntu8.0.4。感觉和windows XP差不多。XP下有的东西,ubuntu下基本上也有。 ps:昨天是我的生日。昨天上午有课,一下午还有今天上午就是在交叉编译的过程中度过的。感觉整个过程挺考验耐心的。下面进入正题。 待续。。。最近两天内补充完整。 ************************************************************************************* 在进行嵌入式在进行嵌入式开发之前,首先要建立一个交叉编译环境,这是一套编译器、连接器和libc库等组成的开发环境。本文结合自己做嵌入式交叉编译开发工作的经验,同时结合自己的体会,做了一个介绍 随着消费类电子产品的大量开发和应用和Linux操作系统的不断健壮和强大,嵌入式系统越来越多的进入人们的生活之中,应用范围越来越广。 在裁减和定制Linux,运用于你的嵌入式系统之前,由于一般嵌入式开发系统存储大小有限,通常你都要在你的强大的pc机上建立一个用于目标机的交叉编译环境。这是一个由编译器、连接器和解释器组成的综合开发环境。交叉编译工具主要由binutils、gcc 和glibc 几个部分组成。有时出于减小libc 库大小的考虑,你也可以用别的c 库来代替glibc,例如uClibc、

Arm linux交叉编译

1、编译C++程序,链接是需要添加 -lstdc++ g++和gcc本质一样的,本质上还是gcc,我们实验室所有的c++程序都是用gcc编译的,一般的程序用gcc足够了。对于C++ 程序,编译的时候用gcc 或者g++ 都可以。但是在进行连接的时候最好用g++,因为用g++ 会自动进行C++ 标准库的连接;用gcc 连接C++ 程序也可以,但是需要人为指定连接C++ 标准库,否则就会出现 undefined reference to `__gxx_personality_v/0' 之类的错误。可见-lstdc++ 所对应的是标准C++库。 2、linux OpenCV 静态链接错误,链接是需要添加–ldl undefined reference to `dlopen' undefined reference to `dlerror' undefined reference to `dlsym' 对dlopen, dlerror, dlsym 未定义的引用,缺少链接库,链接时加上选项-ldl 3、对icvPuts, icvGets, gzputs, gzgets, gzopen, gzclose 未定义的引用,编译错误如下 ./obj/local/armeabi-v7a/libopencv_core.a(persistence.cpp.o): In function `icvPuts(CvFileStorage*, char const*)':persistence.cpp:(.text._ZL7icvPutsP13CvFileStoragePKc+0x20): undefined reference to `gzputs'./obj/local/armeabi-v7a/libopencv_core.a(persistence.cpp.o): In function `icvGets(CvFileStorage*, char*, int)':persistence.cpp:(.text._ZL7icvGetsP13CvFileStoragePci+0x26): undefined reference to `gzgets'./obj/local/armeabi-v7a/libopencv_core.a(persistence.cpp.o): In function 缺少zlib库引起的,编译链接时加上-lz 4、如何在configure时,将编译参数传入,改变默认的编译器gcc成arm-linux编译器 按照INSTALL中的介绍,也是常用的方法,在configure的时候,加上–host=arm-linux,结果没有实现我们要的效果,没有将编译器从默认的gcc改成arm-linux-gcc,编译器还是用的默认的gcc。 参数传递必须像CFLAGS=-O2 ./configure一样,将参数设置放在configure的前面: CC=arm-linux-gcc ./configure才能识别的。(如果CC参数放在configure后面:./configure CC=arm-linux-gcc 则不能识别。) –prefix=/usr/crifan/lrzsz,表示具体安装到哪里 完整的配置: CFLAGS=-O2 CC=arm-linux-gcc ./configure–cache-file=cache_file_0 –prefix=/usr/crifan/lrzsz 5、zlib的交叉编译 交叉编译zlib-1.2.3.tar.bz2:

交叉编译几种常见的报错

交叉编译几种常见的报错 由于是第一次交叉编译,不知道会出现什么问题,思路就是先把gcc和ld都改成arm的,然后遇到什么问题在解决什么问题,以下过程都是在这个思路下进行。 1.指定arm的编译器和连接器: 只是把gcc改为arm-none-linux-gnueabi-gcc,ld改为arm-none-linux-gnueabi-ld,其他的都没有 修改。出现以下错误: arm-none-linux-gnueabi-ld: warning: library search path "/usr/local/lib" is unsafe for cross-compilation arm-none-linux-gnueabi-ld: skipping incompatible /usr/local/lib/libfreetype.so when searching for -lfreetype arm-none-linux-gnueabi-ld: skipping incompatible /usr/local/lib/libfreetype.a when searching for -lfreetype arm-none-linux-gnueabi-ld: cannot find -lfreetype 分析原因是:链接的这些库文件都是在PC编译器下编译出来的,现在把它们和用arm-none-linux-gnueabi-gcc编译出来的文件做链接,当然会出错。 解决方法:这些库重新用arm-gcc重新编译生成相应的库。 下面使用是重新编译库文件的过程: 重新编译freetype 根据交叉编译的文档,我创建了一个文件夹/usr/local/arm-linux来存放编译后的库文件。执行: ./configure –host=arm-none-linux-gnueabi –prefix=/usr/local/arm-linux 注意:host的参数应该是交叉编译环境的前缀。 另外,freetype自动生成的include文件夹有点小问题,编译完成后的include目录结构是 /include/ft2build.h和

TinyOS在windows中安装步骤

1.TinyOS 1.1概要 TinyOS应用程序都是有一个或多个组件链接起来,从而形成一个完整的可执行程序。组件中实现了功能接口,同时也能使用其它组件提供的接口。 在接口定义中可以申明命令函数和事件函数,命令函数由接口提供者实现,事件函数由接口使用者实现。对于一个组件而言,如果它要使用某个组件接口中的命令,它必须实现这个接口的事件。一个组件可以使用或提供多个接口以及同一个接口的多个实例。 组件有两种类型:模块(module)和配置(configuration)。模块提供应用程序代码,实现一个或多个接口;配置则是用来将其它组件装配起来,将各个组件所使用的接口与其它组件提供的接口连接在一起,进行导通。每个应用程序都由一个顶级配置所描述,其内容就是将该应用程序所用到的所有组件导通起来,形成一个有机整体。 TinyOS应用程序必须包含Main 组件,Main组件是首先被执行的一个组件。确切的说,在TinyOS 中执行的第一个命令是Main.StdControl.init(),接下来是Main.StdControl.start()。 Main组件完成以下功能:芯片初始化,外围电路初始化,操作系统调度数据结构初始化,子组件初始化,启动子组件件,进入调度死循环从而将控制权交给操作系统,一旦没有任务可以调度就进入休眠状态以降低系统功耗。 TinyOS的调度系统是TinyOS系统的核心部分。它采用先进先出的排队策略,任务之间不可以抢占,但是中断可以抢占任务,中断是否可以抢占中断则是应用程序自己控制的。即如果中断处理程序进入中断以后执行了关中断的操作,那么这个中断将是不可抢占的,否则在服务的过程中就有可能被抢占掉。另外还要注意,在中断服务程序里面是可以创建任务的。 1.2在Cygwin下的安装 在/etc/bash.bashrc文件中增加以下内容: export TOSROOT=/opt/tinyos-2.x export TOSDIR=$TOSROOT/tos export CLASSPATH=C:\cygwin\opt\tinyos-2.x\support\sdk\java\tinyos.jar export CLASSPATH="$CLASSPATH;." export MAKERULES=$TOSROOT/support/make/Makerules export PATH=/opt/msp430/bin:/opt/jflashmm:$PATH 安装以下软件包: rpm -ivh --ignoreos c:/downloads/avr-binutils-2.17tinyos-3.cygwin.i386.rpm rpm -ivh --ignoreos c:/downloads/avr-gcc-4.1.2-1.cygwin.i386.rpm rpm -ivh --ignoreos c:/downloads/avr-libc-1.4.7-1.cygwin.i386.rpm rpm -ivh --ignoreos c:/downloads/avarice-2.4-1.cygwin.i386.rpm rpm -ivh --ignoreos c:/downloads/avr-insight-6.3-1.cygwin.i386.rpm

交叉编译器简介

交叉编译器 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。 有时是因为目的平台上不允许或不能够安装我们所需要的编译器,而我们又需要这个编译器的某些特征;有时是因为目的平台上的资源贫乏,无法运行我们所需要编译器;有时又是因为目的平台还没有建立,连操作系统都没有,根本谈不上运行什么编译器。 交叉编译这个概念的出现和流行是和嵌入式系统的广泛发展同步的。我们常用的计算机软件,都需要通过编译的方式,把使用高级计算机语言编写的代码(比如C代码)编译(compile)成计算机可以识别和执行的二进制代码。比如,我们在Windows平台上,可使用Visual C++开发环境,编写程序并编译成可执行程序。这种方式下,我们使用PC平台上的Windows 工具开发针对Windows本身的可执行程序,这种编译过程称为native compilation,中文可理解为本机编译。然而,在进行嵌入式系统的开发时,运行程序的目标平台通常具有有限的存储空间和运算能力,比如常见的ARM 平台,其一般的静态存储空间大概是16到32MB,而CPU的主频大概在100MHz到500MHz之间。这种情况下,在ARM平台上进行本机编译就不太可能了,这是因为一般的编译工具链(compilation tool chain)需要很大的存储空间,并需要很强的CPU运算能力。为了解决这个问题,交叉编译工具就应运而生了。通过交叉编译工具,我们就可以在CPU能力很强、存储控件足够的主机平台上(比如PC上)编译出针对其他平台的可执行程序。 要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。常见的交叉编译例子如下: 1、在Windows PC上,利用ADS(ARM 开发环境),使用armcc编译器,则可编译出针对ARM CPU的可执行代码。 2、在Linux PC上,利用arm-linux-gcc编译器,可编译出针对Linux ARM平台的可执行代码。

Vmware安装Ubuntu及交叉编译器

在虚拟机下Linux(Ubuntu)的安装 1.创建新的虚拟机 2.点击自定义 3、选Workstation版本的兼容性,然后点击下一步

4、选择稍后安装操作系统,然后下一步。 也可以选择第二项“安装程序光盘映像文件ISO”,之后会VMware会自动得知你的iso是Linux(Ubuntu),只要求你输入全名,和用户名密码等简单的用户设定,这是一个简单安装,可以跳过下面的步骤。我觉得是因为这个OS的自动安装,不完全,导致一些核心命令无法使用、无反应等一些问题。所以有更高要求,不能选这项,需要完全、自定义的安装。 5、客户机操作系统选择Linux,版本选择Ubuntu 64位,然后下一步。

6、设置虚拟机名称(即每次启动VMware左上方显示的名字),之后选择你想的在WINDOWS操作系统里的安装路径(默认在C 盘,很不方便,不要安装在C盘)。 7、设置虚拟机处理器数量,选择处理器数量为2(看情况而定,我是i7处理器,配置较好无压力的,感觉双核比单核好一些)

8、.内存大小选择,使用自动推荐的1G内存(本机内存8G)。 9、网络类型选择,本次选择默认的“NAT”

注:使用“NAT”的话,需要外面的WIN7使用一根线连接上网,才能在Ubuntu里上网(如同Ubuntu是你的真正OS的感觉,不需要手工配置任何IP信息),不能默认使用无线连接。这点对有些笔记本同学可能会造成麻烦。当然不是说不能通过手动配置IP相关解决,但是为了避免每次都配置的麻烦,请直接使用“bridged”桥接手动配置。 9. 默认即可,直接“下一步”

10、选择“将虚拟磁盘存储为单个文件” 11.虚拟机文件的存放地址,点击“下一步”即可 12、点击“完成”

ARM、linux常用服务器+交叉编译工具链

ARM、linux常用服务器+交叉编译工具链 1. tftp服务器在安装linux时通常可供选择是否安装tftp服务器 启动后可通过在控制终端输入netstat -a|grep tftp查看是否已经安装若已安装则为如下打印信息: [root@localhost /]# netstat -a|grep tftp 若没有安装则可使用 –ivh tftp-server-0.42-3.1.i386.rpm 进行安装然后建立主要工作目录mkdir /tftpboot 接下来配置tftp服务器 /etc/init.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \par # protocol. The tftp protocol is often used to boot diskless \par # workstations, download configuration files to network-aware printers, \par # and to start the installation process for some operating systems. tftp _type = dgram

= udp = yes = root = /usr/sbin/in.tftpd _args =-s /tftpboot = no _source = 11 = 100 2 = IPv4 注意修改server_args = -s /tftpboot为你tftp工作目录。 接下来便是重启tftp 服务器了/etc/init.d/xinetd restart打印出如下信息[root@localhost /]# /etc/init.d/xinetd restart xinetd: [ OK ] xinetd: [ OK ] 表示重启成功接下来便可查看是否已经安装成功 [root@localhost /]# netstat -a|grep tftp

嵌入式Linux开发交叉编译器的安装

实验三嵌入式Linux开发交叉编译器的安装 班级:B08511 姓名:张媛媛学号:20084051112 成绩: 一、实验目的 安装ARM平台下的嵌入式Linux开发的交叉编译器arm-linux-gcc,编译简单的程序并通过NFS方式运行于开发板上,比较与gcc生成的可执行文件的不同; 二、实验设备 硬件:PC机开发板 三、实验原理 嵌入式系统的交叉开发环境一般包括交叉编译器、交叉调试器和系统仿真器,其中交叉编译器用于在宿主机上生成能在目标机上运行的代码,而交叉调试器和系统仿真器则用于在宿主机与目标机间完成嵌入式软件的调试。在采用宿主机/目标机模式开发嵌入式应用软件时,首先利用宿主机上丰富的资源和良好的开发环境开发和仿真调试目标机上的软件,然后通过串口或者用网络将交叉编译生成的目标代码传输并装载到目标机上,并在监控程序或者操作系统的支持下利用交叉调试器进行分析和调试,最后目标机在特定环境下脱离宿主机单独运行。 本次实验涉及到的是嵌入式Linux开发的交叉编译器arm-linux-gcc,从体系结构角度来讲,借助其编译生成的程序是由ARM平台下机器指令构成的可执行程序。 四、实验内容 (1)arm-linux-gcc-3.4.1.tgz为编译器的文件压缩包(实验室机器中位于windows系统的“c:\嵌入式Linux实验\Tools”),为3.4.1版本的交叉编译工具,用来编译常用的一些代码;可通过虚拟机与Windows系统的共享文件夹将其拷贝到Linux系统中; 安装命令:tar xvfz arm-linux-gcc-3.4.1.tgz –C / (2)设置环境变量 可以在/etc/bash.bashrc文件中加入: export PATH=$PATH:/usr/local/arm/3.4.1/bin 就可以直接使用arm-linux-gcc的一些命令; (3)查看arm-linux-gcc编译器版本 输入arm-linux-gcc –v可查看编译器版本,如图3-1: 图3-1 编译器版本

14-Cygwin+Android NDK的安装

Cygwin+Android NDK的安装 本文档为刘长冬的毕业论文实验系统环境搭建说明书的子部分—Cywin+Android NDK的安装文档。本文档详细描述了Cywin+Android NDK安装的方法和过程,为实验系统下一步的设计和开发提供必要的依据。 1.软件的来源 1.1.Cygwin Cygwin是许多自由软件的集合,最初由Cygnus Solutions开发,用于各种版本的Microsoft Windows上,运行UNIX类系统。Cygwin的主要目的是通过重新编译,将POSIX系统(例如Linux、BSD,以及其他Unix系统)上的软件移植到Windows上。Cygwin移植工作在Windows NT、Windows 2000、Windows XP以及Windows Server 2003上比较好,在Windows 95和Windows 98上,相对差劲一些。目前Cygwin由Red Hat等负责维护。 Cygwin包括了一套库,该库在Win32系统下实现了POSIX系统调用的API;还有一套GNU开发工具集(比如GCC、GDB),这样可以进行简单的软件开发;还有一些UNIX系统下的常见程序。2001年,新增了X Window System。 另外还有一个名为MinGW的库,可以跟Windows本地的MSVCRT库(Windows API)一起工作。MinGW占用内存、硬盘空间都比较少,能够链接到任意软件,但它对POSIX规范的实现没有Cygwin库完备。 但糟糕的是,Cygwin不支持Unicode。实际上,除了当前Windows系统以及OEM codepages(例如,一个俄语用户,他的codepages是CP1251和CP866,而不能是KOI8-R、ISO/IEC 8859-5、UTF-8等),Cygwin对其他字符集都不支持。 Red Hat规定,Cygwin库遵守GNU General Public License,但也可以跟符合开源定义的自由软件链接。Red Hat另有价格不菲的许可协议,这样使用Cygwin库的专属软件,就可以进行再发布。 官方网站地址为: https://www.wendangku.net/doc/5315839928.html,/

交叉编译工具链的安装配置

交叉工具链的生成 https://www.wendangku.net/doc/5315839928.html,/uid-9185047-id-3158569.html 软件平台:ubuntu 10.10 主机编译器:gcc 4.5.1 硬件平台:s3c2410 1、准备环境 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,要先安装gperf 2、下载crosstool-ng软件包 crosstool-ng-1.17.0.tar.bz2 3、相应目录的建立 sudo mkdir -p /usr/local/arm sudo chmod 777 /usr/local/arm // 将arm目录权限设置为777 cd /usr/local/arm mkdir 4.7.2 sudo mkdir -p /home/crosstool cd /home/s3c2410/crosstool sudo mkdir crosstool-build crosstool-install src-4.7.2 (编译目录、安装目录、目标源码目录) 4、安装crosstool-ng cp 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/下的https://www.wendangku.net/doc/5315839928.html,p cp到/etc/bash_completion.d 配置安装目录为/home/s3c2410/crosstool/crosstool-install 注:有的没安装gperf,无法生成makefile,要先安装gperf sudo ./configure --prefix=/home/crosstool/crosstool-install sudo make --编译 sudo make install --安装

cygwin安装

Cygwin的安装。 我们可以到Cygwin的官方网站下载Cygwin的安装程序,地址是: https://www.wendangku.net/doc/5315839928.html,/ 或者直接使用下载连接来下载安装程序,下载连接是: https://www.wendangku.net/doc/5315839928.html,/setup.exe 下载完成后,运行setup.exe程序,出现安装画面。直接点“下一步”,出现安装模式的对话框,如下图所示: 我们看到有三种安装模式: ?Install from Internet,这种模式直接从Internet安装,适合网速较快的情况; ?Download Without Installing,这种模式只从网上下载Cygwin的组件包,但不安装; ?Install from Local Directory,这种模式与上面第二种模式对应,当你的Cygwin组件包已经下载到本地,则可以使用此模式从本地安装Cygwin。 从上述三种模式中选择适合你的安装模式,这里我们选择第一种安装模式,直接从网上安装,当然在下载的同时,Cygwin组件也保存到了本地,以便以后能够再次安装。选中后,点击“下一步”,

这一步选择Cygwin的安装目录,以及一些参数的设置。默认的安装位置是C:\cygwin\,你也可以选择自己的安装目录,然后选择“下一步”, 这一步我们可以选择安装过程中从网上下载的Cygwin组件包的保存位置,选择完以后,点击“下一步”,

这一步选择连接的方式,选择你的连接方式,然后点击下一步,会出现选择下载站点的对话框,如下图所示, 在这一步,需要注意,为了获得最快的下载速度,我们首先在列表中寻找Cygwin中国镜像的地址:https://www.wendangku.net/doc/5315839928.html,,如果找到就选中这个地址;如果找不到这个地址,就在下面手动输

了解Linux安装ARM交叉编译器的步骤

了解Linux安装ARM交叉编译器的步骤 安装交叉编译环境 gcc是linux环境下的asm和c语言编译器,生成的是可以在x86平台上运行的可执行程序;而在开发板上运行的程序则需要arm平台专用的编译器,也称为交叉编译器; 交叉编译器可以由开发人员手工定制,也可用使用别人已经编译好的,比如arm-linux-gcc; (1)安装交叉编译器 ---------------------- $>cd /home/zhang/tools/ $>tar xzvf crosstools-451.tar.gz -C /usr/local/ $>cd /usr/local $>ls 可以看到一个子目录toolschain/,该目录下存放了用于arm平台的交叉编译器和其他工具。arm-linux-gcc等可执行程序位于bin子目录下。 (2)环境变量的设置 ---------------------- 如果希望在控制台中直接运行arm-linux-gcc,则必须把arm-linux-gcc所在的路径记录到控制台的默认环境变量PATH中,这需要修改某些配置文件。 如果使用root用户,则可以修改如下文件: $>vim ~/.bashrc 在文件的最后加入以下内容: export PATH=/usr/local/toolschain/4.5.1/bin:$PATH //写入/etc/profile或/etc/bashrc也可 退出vim后,使新的环境变量生效: $>source ~/.bashrc 可以用如下命令验证是否可直接运行交叉编译器: $>which arm-linux-gcc 如显示/usr/local/toolschain/4.5.1/bin/arm-linux-gcc则说明环境变量配置好;

ARM、linux常用服务器+交叉编译工具链

1.tftp服务器在安装linux时通常可供选择是否安装tftp服务器 启动后可通过在控制终端输入netstat -a|grep tftp查看是否已经安装若已安装则为如下打印信息: [root@localhost /]# netstat -a|grep tftp udp 0 0 *:tftp *:* 若没有安装则可使用 rpm –ivh tftp-server-0.42-3.1.i386.rpm 进行安装然后建立主要工作目录mkdir /tftpboot 接下来配置tftp服务器 vim /etc/init.d/tftp # default: off # description: The tftp server serves files using the trivial file transfer \ # protocol. The tftp protocol is often used to boot diskless \ # workstations, download configuration files to network-aware printers, \ # and to start the installation process for some operating systems. service tftp { socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /tftpboot disable = no per_source = 11 cps = 100 2 flags = IPv4 } 注意修改server_args = -s /tftpboot为你tftp工作目录。 接下来便是重启tftp 服务器了/etc/init.d/xinetd restart打印出如下信息 [root@localhost /]# /etc/init.d/xinetd restart Stopping xinetd: [ OK ] Starting xinetd: [ OK ] 表示重启成功接下来便可查看是否已经安装成功 [root@localhost /]# netstat -a|grep tftp udp 0 0 *:tftp *:* 2.nfs服务器 首先查看nfs服务器是否被安装(这里为red-had5)rpm –q nfs-utils若打印出如下信息则表示已经被安装 [root@localhost ~]# rpm -q nfs-utils nfs-utils-1.0.9-24.el5 若没有安装nfs服务器则先下载相应的nfs服务器包百度一个即可 然后rpm –ivh nfs- utils-1.0.9-24.el5.i386.rpm这里使用的nfs版本为utils-1.0.9-24.el5故不同版本安装不同,然后进入nfs配置

Cygwin使用指南

Cygwin使用指南 下载: 1. 下载、运行安装向导文件 一开始的下载方法,了解Cygwin的人都知道:就是到: https://www.wendangku.net/doc/5315839928.html, 中先当个安装向导文件setup.exe,这个是Cygwin的官方下载安装向导文件,而且也只能通过它才能正确下载最新的Cygwin版本(为何?稍后有说明)。 setup.exe下载完毕,双击运行,程序安装向导界面如下图所示: 点击“下一步”继续,准备选择Cygwin的安装方式。 2. 选择安装方式 如上图所示,一共有三种安装方式: (1)Install from Internet:直接从Internet上下载并立即安装(安装完成后,下载好的安装文件并不会被删除,而是仍然被保留,以便下次再安装)。 (2)Download Without Installing:只是将安装文件下载到本地,但暂时不安装。 (3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的目录进行安装。 强烈建议选择第(2)项,以便于能够手工指定安装路径。然后再点击”下一步“。 3. 设置安装文件的本地存储路径 由于我们选择的是直接下载的安装方式,所以必需指定好一个本地下载文件存储目录。安装目录所在的驱动器剩余空间必须足够(若要完全下载,至少需要600M以上的空间)。设置好后,点击“下一步”。 4. 选择连接方式

如上图所示,共有三种连接方式选择: (1)Direct Connection:直接连接。 (2)Use IE5 Settings:使用IE的连接参数设置进行连接。 (3)Use HTTP/FTP Proxy:使用HTTP或FTP代理服务器进行连接(需要输入服务器地址和端口号)。 用户可根据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后再点击“下一步”。 5. 选择下载站点 经过一番搜索,安装向导为我们列出了众多可用的下载镜像站点以供选择,有HTTP的也有FTP的。说实话,这些站点我几乎都试过了一遍,真正能用的能给我留下深刻印象的寥寥无几。这里我只推荐一个站点:https://www.wendangku.net/doc/5315839928.html,,又快又稳定。用户也可以自由决定倒底用哪个站点进行下载。另外,几个后辍为“.jp”的站点也还过的去,但不推荐。为啥?因为那是小日本的站点。 言归正传,选择好了没?好,点击“下一步”,向导会显示下图所示的信息: 注意!这并不是正式的下载,而只是安装向导从下载镜像站点上获取压缩过的安装列表文件。这个安装列表文件是Cygwin统一指定的,并随着新版本的发布而更新。安装向导就是通过它来得知究竟可以下载什么不能下载什么。并且该下载列表文件中还有包含有每个下载文件的MD5验证码,非常重要。 6. 选择所要下载/安装的安装包内容 安装列表文件下载完毕,向导会显示列表中的内容,供用户自由选择倒底需要下载哪些安装包。如何选择呢?只需用鼠标点击每个安装包名后面那个循环箭头图标即可:图标后面的文字是表示究竟对该安装包采取何种下载/安装方式,并随着点击而不断变化,共有这么几类:

交叉编译mtd-utils工具(linux下flash工具)

一、下载源码包并解压 wget ftp://https://www.wendangku.net/doc/5315839928.html,/pub/mtd‐utils/mtd‐utils‐1.5.1.tar.bz2 wget https://www.wendangku.net/doc/5315839928.html,/zlib‐1.2.8.tar.gz wget https://www.wendangku.net/doc/5315839928.html,/opensource/lzo/download/lzo‐2.03.tar.gz wget https://https://www.wendangku.net/doc/5315839928.html,/pub/linux/utils/util‐linux/v2.21/util‐linux‐2.21.1.tar.gz tar zxvf zlib‐1.2.8.tar.gz tar zxvf lzo‐2.03.tar.gz tar jxvf mtd‐utils‐1.5.1.tar.bz2 tar zxvf util‐linux‐2.21.1.tar.gz 二、编译安装zlib 1) cd zlib‐1.2.8 CC=arm‐none‐linux‐gnueabi‐gcc ./configure ‐‐prefix= /usr/local/arm‐2007q1/arm‐none‐linux‐gnueabi ‐‐shared (注意:这里的/usr/local/arm‐2007q1/arm‐none‐linux‐gnueabi是交叉编译工具默认目录。) 2) make make install cd .. 3) 安装完成后会在/usr/local/arm‐2007q1/arm‐none‐linux‐gnueabi /目录下生成三个目录:include、lib、share。 安装完后检查一下目录/usr/local/arm‐2007q1/zlib/ 假如 include 中没有 zlib.h 之类的头文件,lib 中没有 libz.so.1.2.3 ,那就自己手动拷到这些目录下去,记着拷的时候把所有的 *.h 都需要拷过去,在拷库的时候用 cp ‐Ca libz.* /…./lib 就行,要用上 ‐Ca 选项。 三、编译安装lzo 1) cd lzo‐2.03/ CC=arm‐none‐linux‐gnueabi‐gcc ./configure ‐‐host=arm‐none‐linux‐gnueabi ‐‐prefix=/usr/local/arm‐2007q1/arm‐none‐linux‐gnueabi

Cygwin + OpenSSH FOR Windows的安装配置

在windows操作系统中,使用Cygwin + OpenSSH开源软件来作为远程连接的安全工具,是一个非常好的方法,得到许多网管人员的青睐。然而要想顺利安装配置好这套软件,对于初学者来说,是有一定难度的。为了使同道们少走弯路,特将本人摸索的经验陈列于此,以供需要者参考。建议在安装配置这套软件之前,最好要初步掌握一些Linux终端操作技能及其技术概念。 以下所述是在Windows XP系统中实践完成,其它Windows系统可参照此文实施。 一、安装Cygwin + OpenSSH 首先打开https://www.wendangku.net/doc/5315839928.html,网页,点击如下链接: 将会下载一个安装Cygwin的setup.exe文件,然后在欲安装Cygwin + OpenSSH软件的磁盘上创建Cygwin目录,在此我们假定为:C:"Cygwin,运行setup.exe后打开图一: 图一 图一主要提供关于Cygwin软件安装的一些信息,点击下一步后打开图二:

图二 图二提供了三个选项: 第一选项:从Internet上下载并安装所需软件。 第二选项:从Internet上下载所需软件安装包到本地磁盘。 第三选项:从本地磁盘安装包的目录中安装所需软件。 此处选择从Internet上下载并安装所需软件,点击下一步后打开图三: 图三 图三为指定软件安装的目标路径,其它按图上默认的选项选择。点击下一步后打开图四: 图四 图四为指定软件安装包的本地存放路径。点击下一步后打开图五:

图五 图五是选择连接Internet的方式,照图点选Use IE5 Settings,点击下一步后打开图六: 图六 图六是选择下载Cygwin的网站,尽量选离我国近的网站,以提高安装速度。点下一步打开图七:

交叉编译环境搭建

交叉编译环境搭建 一、Emdebian介绍 Emdebian vision In the Emdebian vision someone wishing to build a GNU / Linux based device would: 1. Port the linux kernel to their hardware (including writing any specific device drivers). 2. Select the prebuilt emdebian packages needed to support their application. 3. Package their application as Debian package(s) using Debian and Emdebian tools. 4. Build a root filesystem using Emdebian tools from the steps above. Emdebian is involved in steps 2,3,4 above (there are far too many embedded device hardware variations to make prebuilt kernels practical). Thus EmDebian is a binary distribution for embedded devices (whereas most of the other contenders in this space are source distributions [of course being Debian and open source the source code is still available if required]. What emdebian does In short, what EmDebian does is wrap around the regular debian package building tools to provide a more fine grained control over package selection, size, dependencies and content to enable creation of very small and efficient debian packages for use on naturally resource limited embedded targets. 二、搭建GCC编译开发环境 安装G++/GCC编译环境 sudo apt-get install gcc g++ make gdb

交叉开发环境搭建(交叉编译器安装)

课堂实验5 交叉开发环境搭建 -交叉编译器安装【实验目的】 掌握交叉编译器安装方法。 【实验要求】 完成交叉编译器的安装及使用。 【实验预习】 1 交叉编译器介绍 在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。简单地说,就是在一个平台上生成另一个平台上的可执行代码,而这种工具就是交叉编译器(cross compiler)。 2 搭建交叉编译环境 (1)实验环境 交叉编译工具:arm-linux- 3.4.6 编译平台:Redhat Enterprise 4 (2)安装arm-linux-gcc交叉编译器的方法 a 获得交叉编译器包,例如arm-linux-gcc-3.4.1.tar.bz2(里面有arm-linux-gcc命令)。 b 解压后修改环境变量配置文件/etc/profile,添加上arm-linux-gcc命令的路径。 c执行source /etc/profile使新配置生效。 (3)环境变量配置文件说明 /etc/profile,/etc/bashrc 是系统全局环境变量设定文件。 ~/.bashrc,~/.bashrc用户目录下的私有环境变量设定文件(~是root目录)。 如想将一个路径加入到环境变量$PATH中(以便在任何目录下都可以访问到该路径中的命令),可以像下面这样做: 方法1. 控制台中:使用export命令增加环境变量: 例如:# export PA TH=$PA TH:/usr/local/arm/2.95.3/bin 例如:# PATH="$PA TH:/my_new_path" (关闭shell,会还原PATH) 方法2. 修改profile文件:

相关文档
相关文档 最新文档