现在由于源码更新比较多,用之前的交叉编译工具编译的时候可能会出现段错误的情况,这种情况就是链接文件出问题了。如果实力不够强的话,不要试图去调试出错的地方。那样会浪费很多时间,比较明智的做法是去网上查下,哪个版本的编译器比较适合编译对应的源码。
今天编译u-boot-2012.04.rc1的时候就出了段错误,编译器用的3.4.5的,果断换4.3.2的,苦逼的事发生了,由于自己的大意,交叉编译器路径的时候,指定bin的目录弄错了,但只是由于这个错误让我总结了三种设环境变量的方法。这里记录下来。
第一种方法,也是比较常用的。直接vi ~/.bashrc 在最里面加上一行 export PATH=/xxx/bin:$PATH,xxx为交叉编译工具的安装路径。这种方法设置的只对当前用户有效。/usr/local/arm/4.3.2/bin,这个是我安装的路径,但刚开始将bin的路径指定为/usb/local/arm/arm-linux-none-gnueabi/bin,悲剧从这里开始了。其实这个bin目录下主要是gcc,host的一些命令,并不是arm的。其实是可以看下bin下面的文件的,一般正而言bin上当下有比较多可执行程序。设置完后保存退出。然后source ~/.bashrc就可以用arm-linux-gcc -v来查看有没有换过来。由于我用的/usb/local/arm/arm-linux-none-gnueabi/bin这个错误的路径,导致死活也改正不过来,下面就开始上网上找,上QQ群里面问。
一热心哥们告诉我用export @PATH:/usr/local/arm/4.3.2/arm-linux-none-gnueabi/bin我按这个来,导致的我命令用不了,ls也用不了。相当于shell用不了,但还是有解决办法的,去我之前的博文里面搜。这里出错原因是把bin的路径全搞乱了。
第二种方法,echo $PATH可以看到当前用户下的各种环境变量,我们可以通过将之前旧的交叉编译工具的路径替换为现在要用的路径,export PATH=/新路径/bin: /usr/local/bin:....每个路径用:隔开,这里要指定的新的交叉编译工具的路径替换掉老的就可以了,其他的不变。然后再arm-linux-gcc -v就可以看到交叉编译器的版本变为现在新的了。这种方法的主要是用于临时的,当重启机器的时候又会还原。
第三种方法,直接 vi /etc/everiment编辑里面的内容,将新的交叉编译工具路径替换掉老的保存退出,重启下就OK了。这种设置一次后不用每次都设置,而且所有用户都可用。
阅读(1835) | 评论(0) | 转发(0) |