+ -
当前位置:首页 → 问答吧 → Ubuntu下arm-linux-gcc的问题

Ubuntu下arm-linux-gcc的问题

时间:2008-08-24

来源:互联网

我在Ubuntu下装了arm-linux-gcc可是不成功。
我解压到了/usr/local/arm/下
然后根据google出来的在编辑了
root@jackyubuntu:~# gedit /etc/bash.bashrc
添加以下内容:
if [ -d /usr/local/arm ] ; then
   PATH=/usr/local/arm/3.4.1/bin:"${PATH}"
fi

我保存退出以后
root@jackyubuntu:~# source /etc/profile

root@jackyubuntu:~# echo $PATH
/usr/local/arm/3.4.1/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

root@jackyubuntu:~# arm-linux-gcc -v
bash: arm-linux-gcc: command not found

请问谁能帮我解决?
谢谢!!

作者: JCheung   发布时间: 2008-08-24

我知道在RH下只要
gedit /root/.bashrc
添加
export PATH=$PATH:/usr/loca/arm/3.4.1/bin

然活在 source /etc/profile
就可以了,对吧?

作者: JCheung   发布时间: 2008-08-24

我的是64的Ubuntu,看到网上一个帖子,说他的arm-linux-gcc也没有成功,他的机子是64的,说可能跟这个有关。
请问一下,跟这个有关么??


作者: JCheung   发布时间: 2008-08-24

从过程上来看,没有什么错误啊

作者: gigabyte   发布时间: 2008-08-24

恩,是阿。
可是就是不行阿。

还希望大家帮帮我阿!!!

作者: JCheung   发布时间: 2008-08-25

ubuntu跟debian是一个根上的两个东西  我用的是debian

为什么用root用户 不安全

我用的是普通用户 比如arm用户 你只要编辑/home/arm/.bashrc
添加一句:export PATH=$PATH:/usr/loca/arm/3.4.1/bin
就OK了!!

作者: vitoUNIX   发布时间: 2008-08-25

恩.LS方法是对的,只是直接修改的话你自己得记清楚了~ 一般机子上都不只一个ARMGCC,别改晕了~

其实直接改你需要编译文件的ARMGCC的路径不完了~ 各是各的互不冲突~

作者: jn200002   发布时间: 2008-08-25

楼主: 用绝对路径试一下!

作者: rodgerluo   发布时间: 2008-08-25

8楼的我用的就是绝对路径。 -_!!

6 7 楼的好像还没有明白我的意思吧。
我贴出来的信息也算全吧。
你们说的话好像跟我设置的没有什么区别,那不就是等于没有解决么?
请问6楼你的机子是64位的么??

作者: JCheung   发布时间: 2008-08-25

你修改的是/etc/bash.bashrc
可是你source的是/etc/profile

作者: pilgrim_kevin   发布时间: 2008-08-25



QUOTE:
原帖由 JCheung 于 2008-8-25 12:41 发表
8楼的我用的就是绝对路径。 -_!!

6 7 楼的好像还没有明白我的意思吧。
我贴出来的信息也算全吧。
你们说的话好像跟我设置的没有什么区别,那不就是等于没有解决么?
请问6楼你的机子是64位的么??


我说的是你为什么用root账号做开发?

用个普通用户做开发不好吗!!

我就一次 写命令的时候rm ~/etc 我在~和/etc之间多打了个空格就变成rm ~ /etc了 结果...............

用普通用户就象我说的办法肯定没问题 我就是那么做的!!

作者: vitoUNIX   发布时间: 2008-08-25

回复 #10 pilgrim_kevin

# System-wide .bashrc file for interactive bash(1) shells.

# To enable the settings / commands in this file for login shells as well,
# this file has to be sourced in /etc/profile.

# If not running interactively, don't do anything
[ -z "$PS1" ] && return

# check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
shopt -s checkwinsize

这个是/etc/bash.bashrc文件开头的注释

[ 本帖最后由 JCheung 于 2009-3-28 12:02 编辑 ]

作者: JCheung   发布时间: 2008-08-25



QUOTE:
原帖由 vitoUNIX 于 2008-8-25 01:35 PM 发表

我说的是你为什么用root账号做开发?

用个普通用户做开发不好吗!!

我就一次 写命令的时候rm ~/etc 我在~和/etc之间多打了个空格就变成rm ~ /etc了 结果...............

用普通用户就象我说的办法肯定 ...





你这样的错误我是不会犯的。我从用Linux的第一天开始就是用的root
Ubuntu下普通用户权限几乎干不了什么。

作者: JCheung   发布时间: 2008-08-25



QUOTE:
原帖由 JCheung 于 2008-8-25 14:12 发表




你这样的错误我是不会犯的。我从用Linux的第一天开始就是用的root
Ubuntu下普通用户权限几乎干不了什么。


你严重违背了linux安全性方面设计的初衷!!

该用root权限的时候su root就好了!

而且不同的项目放到不同的用户目录下 环境变量设置不同也没关系...要不人家在每个用户目录下搞个.bashrc做什么?!!!

如果一直用root那不跟windows一样了!!!

作者: vitoUNIX   发布时间: 2008-08-25

我大部分还是在用root,在普通用户下相动一下就不行,想在/home以外的目录下建个目录都没有权限,非得要su才行。

作者: rodgerluo   发布时间: 2008-08-25



QUOTE:
原帖由 vitoUNIX 于 2008-8-25 14:30 发表

你严重违背了linux安全性方面设计的初衷!!

该用root权限的时候su root就好了!

而且不同的项目放到不同的用户目录下 环境变量设置不同也没关系...要不人家在每个用户目录下搞个.bashrc做什么?!!!

如果 ...



我也一直root下开发……

作者: gigabyte   发布时间: 2008-08-25

linux安全是靠个人的阿。只有root是用的最合适的,我第一天就是用的root,所以很习惯。太受不了普通用户。更觉得Ubuntu下的普通用户的权限很变态。

好了,说回正题,请各位帮我解决我的问题!!

作者: JCheung   发布时间: 2008-08-25



QUOTE:
原帖由 JCheung 于 2008-8-25 16:35 发表
linux安全是靠个人的阿。只有root是用的最合适的,我第一天就是用的root,所以很习惯。太受不了普通用户。更觉得Ubuntu下的普通用户的权限很变态。

好了,说回正题,请各位帮我解决我的问题!!


我说个建议吧,也是我自己的做法
我一般不会把交叉编译工具的路径export到环境变量去的。做嵌入式的,一般都备有3到4个不同版本的交叉编译工具,都export到环境变量了,那岂不是很乱?最好的做法是在Makefile指定要用的交叉编译工具的绝对路径

另外,大概一年前,我也和楼主是root用户的忠实使用者,随后发生的事情恰如vitoUNIX所说,把/root里的文件全删了,可怜我的工程文件。之后就学会备份和普通用户了。我性格大概也算谨慎了,但是有时候头脑一发昏,就什么都晚了。我现在用的是debian,和ubuntu是差不多的,用多了普通用户也习惯了

作者: sep   发布时间: 2008-08-25



QUOTE:
原帖由 JCheung 于 2008-8-25 16:35 发表
linux安全是靠个人的阿。只有root是用的最合适的,我第一天就是用的root,所以很习惯。太受不了普通用户。更觉得Ubuntu下的普通用户的权限很变态。

好了,说回正题,请各位帮我解决我的问题!!


其实原来我刚学linux的时候也是一直用root账户!!
还好一个牛人帮助我改变了 那人也姓牛 是个北京人 是我这辈子碰到的第一个在LINUX编程方面巨牛的人 他也是CU论坛C/C++版块的版主.
他给我上课的第一节课就根我们强调:搞LINUX开发的程序员都有一个特点 就是一切都很遵循标准. 标准是一个LINUX开发者的最大特点...用普通用户搞开发也是一个标准.国外在标准上要比国内的好很多.特别是印度!!!!

所以我劝那些用root用户搞开发的朋友们 别等到了真把关键的资料或者文档RM了之后才知道后悔!!

如果root用户很安全的话:GUN那群"牲口"早就把su什么之类的东西从linux剔除了!!

作者: vitoUNIX   发布时间: 2008-08-25

說了半天問題都沒有解决啊。
各位還是幫我解决問題吧。

說半天都沒有說道正點上。

作者: JCheung   发布时间: 2008-08-27

8 楼叫你用绝对路径试一下,意思不是叫你把绝对路径放在 bashrc 里

他的意思是叫你在命令行里把 arm-linux-gcc 的完整路径敲出来,看看运行错误是什么


路径没问题的话,估计十有八九是你的 arm-linux-gcc 是 32 位的, 而你的系统是 64 位的。
如果 arm-linux-gcc 没有现成的 64 位二进制版本的话,看来你需要自己编译 toolchain。

作者: abscnd   发布时间: 2008-08-27

同意LS
我原来也是装64位系统,后来一直有问题,才换成32位的

作者: qspy   发布时间: 2008-08-27

一开始的设置把:打成:了,由于是网上复制的没有检查,比较粗心。改过来以后,

当profile里设置成export PATH=/usr/local/arm/3.4.1/bin:"${PATH}"时:
root@jackyubuntu:~# arm-linux-gcc
bash: /usr/local/arm/3.4.1/bin/arm-linux-gcc: No such file or directory

当export PATH=$PATH:/usr/loca/arm/3.4.1/bin这样时:
root@jackyubuntu:~# arm-linux-gcc
bash: arm-linux-gcc: command not found
这样的情况

底下附加两张图分别是/usr/local/arm/3.4.1/bin的图和/usr/local/arm/3.4.1./arm-linux/bin的图

那些有框的是不是没有装上呢?
我觉个例子,我安装glibcbug,可是没有这个包

请大家帮忙看下。

谢谢!!!

armbin.jpg (68.99 KB)

下载次数:3

2008-08-27 21:58

armlinubin.jpg (79.32 KB)

下载次数:4

2008-08-27 21:58

作者: JCheung   发布时间: 2008-08-27

直接在bin目錄下輸arm-linux-gcc可以嗎?

作者: bitmilong   发布时间: 2008-08-27

勸樓主還是不要直接用root的好

另,64位跟找不到路徑沒有關係

作者: bitmilong   发布时间: 2008-08-27

我的是这样,用的也是ubuntu,不过已经换成32位的了

$ /usr/local/arm/3.4.1/bin/arm-linux-gcc -v
Reading specs from /usr/local/arm/3.4.1/lib/gcc/arm-linux/3.4.1/specs
Configured with: /work/crosstool-0.27/build/arm-linux/gcc-3.4.1-glibc-2.3.2/gcc-3.4.1/configure --target=arm-linux --host=i686-host_pc-linux-gnu --prefix=/usr/local/arm/3.4.1 --with-headers=/usr/local/arm/3.4.1/arm-linux/include --with-local-prefix=/usr/local/arm/3.4.1/arm-linux--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
$

作者: qspy   发布时间: 2008-08-28

你就直接敲/usr/local/arm/3.4.1/bin/arm-linux-gcc试一下不就知道了,如果结果是no input file说明是你的bash脚本有问题,如果还是can not find那就是toolchain有问题
感觉楼主连最基本的linux环境都没弄清楚

作者: hlidea   发布时间: 2008-08-28

楼主搞错了:
PATH=/usr/local/arm/3.4.1/bin:"${PATH}"
估计应该是“PATH=/usr/local/arm/bin”
3.4.1/bin下的可执行文件应该是gcc g++ as这样的文件,
在上一层的bin

作者: 水手辛巴   发布时间: 2008-08-28

楼主搞错了:
PATH=/usr/local/arm/3.4.1/bin:"${PATH}"
估计应该是“PATH=/usr/local/arm/bin”
3.4.1/bin下的可执行文件应该是gcc g++ as这样的文件,
在上一层的bin目录下才是有arm-linux-gcc,建议你直接到该些目录下看看可执行文件名是否正确再说。

作者: 水手辛巴   发布时间: 2008-08-28



QUOTE:
原帖由 水手辛巴 于 2008-8-28 10:50 发表
楼主搞错了:
PATH=/usr/local/arm/3.4.1/bin:"${PATH}"
估计应该是“PATH=/usr/local/arm/bin”
3.4.1/bin下的可执行文件应该是gcc g++ as这样的文件,
在上一层的bin目录下才是有arm-linux-gcc,建议你直 ...


这个你搞错了 所有的交叉编译可执行文件都在/usr/local/arm/xxx/bin下!!

作者: vitoUNIX   发布时间: 2008-08-28