当前位置: 技术问答>linux和unix
初学Linux和freebsd的问题,谢谢!
来源: 互联网 发布时间:2015-07-08
本文导语: 我在SCO UNIX5.0下gcc一个a.c的文件,会生成一个a.out的文件,直接在提示符下输入a.out文件就会执行,然而在freebsd下执行a.out就会提示a.out not find 当我用gcc -o a a.c编译,输入./a就会执行.请问这两者有和区别?? ...
我在SCO UNIX5.0下gcc一个a.c的文件,会生成一个a.out的文件,直接在提示符下输入a.out文件就会执行,然而在freebsd下执行a.out就会提示a.out not find
当我用gcc -o a a.c编译,输入./a就会执行.请问这两者有和区别??
当我用gcc -o a a.c编译,输入./a就会执行.请问这两者有和区别??
|
其实这个是跟你的环境变量有关的,应该是PATH吧,我没有记错的话。
你输入一条命令,系统会根据PATH里的设置去搜索文件,一般系统的命令在/bin、/usr/bin、/usr/sbin,你的PATH有这几行,所以当我们输入gcc,ls等命令,系统会从这些目录里寻找的。
./代表的是当前目录的意思,一般PATH中是不会有这行的,所以就出现了楼主的问题。我想,SCO的机器,有./,而FREEBSD的机器,没有加./,原因应该在这吧。
很多人在装好系统后会把./加入到环境变量中,方便。不过我们老师不建议这么做,如果楼主有兴趣,我可以把我们老师给我们举的例子写上来。主要是安全的考虑。
你输入一条命令,系统会根据PATH里的设置去搜索文件,一般系统的命令在/bin、/usr/bin、/usr/sbin,你的PATH有这几行,所以当我们输入gcc,ls等命令,系统会从这些目录里寻找的。
./代表的是当前目录的意思,一般PATH中是不会有这行的,所以就出现了楼主的问题。我想,SCO的机器,有./,而FREEBSD的机器,没有加./,原因应该在这吧。
很多人在装好系统后会把./加入到环境变量中,方便。不过我们老师不建议这么做,如果楼主有兴趣,我可以把我们老师给我们举的例子写上来。主要是安全的考虑。