在make 一个模块时,提示:
arm-none-linux-gnueabi-ld cannot open output file XXX.o Permission denied
想到切换用户,但 sudo make 会提示:
command not found
因而用su切换用户.
但用su时:
$ su - root
Password:
su: Authentication failure
Sorry.
这时候输入
$ sudo passwd root
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
可以到root用户.
但再次编译时,出现:
/Makefile: No such file or directorysrc/arch/arm
gcc: Command not foundnueabi-
查了半天,想到应该编译器路径不对,但source envsetup.sh已经把环境搭好了啊.
再查,注意到source envsetup.sh时会出现: command not found的提示,但看了很久,envsetup.sh和原来一样啊,没有改动什么.
最后用比较器比较,终于发现和旧的envsetup.sh相比,这个envsetup.sh里面的回车键全没有了.(不知那个编辑器自动把其去掉了,可能是sourceinsight),替回原来的,就可以了
但是最开始的Permission denied问题还没解决啊,可是我重新编译这个模块时,Permission denied这个问题没有了,这是怎么回事?(为什么原先会有呢?和envsetup.sh有关?)
网上说:
最后查找su 和sudo 的区别,终于理解了,原来是工作环境的问题。希望此贴以后对其它人有帮助!
su 和 sudo 的区别:
1.共同点:都是root用户的权限;
2.不同点:su仅仅取得root权限,工作环境不变,还是在切换之前用户的工作环境;sudo是完全取得root的权限和root的工作环境。
不知是否正确