-t linux中mv_linux mv -t - CSDN
  • fdisk -l df du ps -aux|grep tomcat ps -ef|grep tomcat ...cp 拷贝文件时和拷贝文件夹时有如下几种情况: ...目标路径不带文件名和带文件名有什么区别, 如果不带文件名,目录后有/和没有/有什么区别 ...
    fdisk -l
    df
    du

    ps -aux|grep tomcat
    ps -ef|grep tomcat


    cp 拷贝文件时和拷贝文件夹时有如下几种情况
    目标路径不带文件名和带文件名有什么区别, 如果不带文件名,目录后有/和没有/有什么区别


    源目录   /root/d
    目标目录 ./d(已存在)
                              结果
    cp -r /root/d   ./d       (./d/d)
    cp -r /root/d   ./d/      (./d/d)
    cp -r /root/d/  ./d       (./d/d)
    cp -r /root/d/  ./d/      (./d/d)


    如果加上参数-T的话,那么执行结果和下面的情况一致


    源目录    /root/d
    目标目录  ./d(不存在)
                              结果
    cp -r /root/d   ./d       (./d)
    cp -r /root/d   ./d/      (./d)
    cp -r /root/d/  ./d       (./d)
    cp -r /root/d/  ./d/      (./d)


    如果加上参数-T, 行为不改变


    建议,在任何情况下,都加上参数-T,这样可以避免目标目录是否存在而产生的不确定性



    移动命令
    mv -fT /root/d/ ./d/

    使用该命令的时候,最好加上参数-fT,这样可以避免目标目录是否存在而产生的不确定
    展开全文
  • linux命令-mv命令

    2018-06-21 23:19:46
    mv(Move file)将源文件重命名为目标文件, 或将源文件移动至指定目录。。 语法 mv [选项]... [-T] 源文件 目标文件 mv [选项]... 源文件... 目录 mv [选项]... -t 目录 源文件... 选项 --backup[=...

    简介

    mv(Move file)将源文件重命名为目标文件,
    或将源文件移动至指定目录。。

    语法

         mv [选项]... [-T] 源文件 目标文件
         mv [选项]... 源文件... 目录
         mv [选项]... -t 目录 源文件...

    选项

    • --backup[=CONTROL] : 为每个已存在的目标文件创建备份
    • -b : 类似–backup 但不接受参数
    • -f, --force : 覆盖前不询问
    • -i, --interactive : 覆盖前询问
    • -n, –nechoo-clobber : 不覆盖已存在文件 如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
    • --strip-trailing-slashes : 去掉每个源文件参数尾部的斜线
    • -S, --suffix=SUFFIX : 替换常用的备份文件后缀
    • -t, --target-directory=DIRECTORY : 将所有参数指定的源文件或目录 移动至 指定目录
    • -T,--no-target-directory : 将目标文件视作普通文件处理
    • -u, --update : 只在源文件文件比目标文件新,或目标文件不存在时才进行移动
    • -v, --verbose : 详细显示进行的步骤

    实例

    1、更改文件名
    
    [root@VM_0_4_centos mv]# touch a.txt
    [root@VM_0_4_centos mv]# ll
    total 0
    -rw-r--r-- 1 root root 0 Jun 21 22:44 a.txt
    [root@VM_0_4_centos mv]# mv a.txt b.txt
    [root@VM_0_4_centos mv]# ll
    total 0
    -rw-r--r-- 1 root root 0 Jun 21 22:44 b.txt
    2、显示详细信息
    
    [root@VM_0_4_centos mv]# mv -v b.txt a.txt
    ‘b.txt’ -> ‘a.txt
    3、将单个文件移动至目录
    
    [root@VM_0_4_centos mv]# mkdir dir1
    [root@VM_0_4_centos mv]# mv a.txt dir1/
        4、将多个文件移动至目录
    
    #mv b.txt c.txt dir1/
    [root@VM_0_4_centos mv]# mv *.txt dir1/
    [root@VM_0_4_centos mv]# ll
    
    [root@VM_0_4_centos mv]# mv -vt dir2/ b.txt c.txt
    ‘b.txt’ -> ‘dir2/b.txt’
    ‘c.txt’ -> ‘dir2/c.txt’
    
    5、  将文件a.txt改名为b.txt,即使b.txt存在,也是直接覆盖掉。
    
    [root@VM_0_4_centos dir2]# mv -vf  b.txt a.txt
    ‘b.txt’ -> ‘a.txt
    6、重命名dir1为dir2(dir2不存在)
    
    [root@VM_0_4_centos mv]# mv dir1 dir2
    [root@VM_0_4_centos mv]# ll
    total 4
    drwxr-xr-x 2 root root 4096 Jun 21 23:04 dir2
    
    7、将dir1移动到dir2中(dir2存在)。(->会放在dir2的目录下面)
    
    [root@VM_0_4_centos mv]# mv -v dir1 dir2
    ‘dir1’ -> ‘dir2/dir1’
    8、文件被覆盖前做简单备份,前面加参数-b
    
    [root@VM_0_4_centos dir1]# mv -bv a.txt b.txt
    mv: overwrite ‘b.txt’? y
    ‘a.txt’ -> ‘b.txt’ (backup: ‘b.txt~’)
    
    9、只在源文件比目标文件新时才移动
    
    [root@VM_0_4_centos dir1]# mv -uv b.txt c.txt
    [root@VM_0_4_centos dir1]# mv -uv c.txt b.txt
    mv: overwrite ‘b.txt’? y
    ‘c.txt’ -> ‘b.txt

    参考

    http://www.cnblogs.com/xqzt/p/5398913.html

    展开全文
  • Linux命令mv用法

    2019-07-02 16:05:19
    ----------------------------------------------------mv用法开始------------------------------------------------- 用法:mv [选项]... [-T] 源文件 目标文件  或:mv [选项]... 源文件... 目录  或:mv [选项...

    ----------------------------------------------------mv用法开始-------------------------------------------------
    用法:mv [选项]... [-T] 源文件 目标文件
     或:mv [选项]... 源文件... 目录
     或:mv [选项]... -t 目录 源文件...
    将源文件重命名为目标文件,或将源文件移动至指定目录。

    长选项必须使用的参数对于短选项时也是必需使用的。
          --backup[=CONTROL]       为每个已存在的目标文件创建备份
      -b                           类似--backup 但不接受参数
      -f, --force                  覆盖前不询问
      -i, --interactive            覆盖前询问
      -n, --no-clobber             不覆盖已存在文件
    如果您指定了-i、-f、-n 中的多个,仅最后一个生效。
          --strip-trailing-slashes    去掉每个源文件参数尾部的斜线
      -S, --suffix=SUFFIX        替换常用的备份文件后缀
      -t, --target-directory=DIRECTORY    将所有参数指定的源文件或目录
                        移动至 指定目录
      -T, --no-target-directory    将目标文件视作普通文件处理
      -u, --update            只在源文件文件比目标文件新,或目标文件
                    不存在时才进行移动
      -v, --verbose        详细显示进行的步骤
          --help        显示此帮助信息并退出
          --version        显示版本信息并退出

    备份文件的后缀为"~",除非以--suffix 选项或是SIMPLE_BACKUP_SUFFIX
    环境变量指定。版本控制的方式可通过--backup 选项或VERSION_CONTROL 环境
    变量来选择。以下是可用的变量值:

      none, off       不进行备份(即使使用了--backup 选项)
      numbered, t     备份文件加上数字进行排序
      existing, nil   若有数字的备份文件已经存在则使用数字,否则使用普通方式备份
      simple, never   永远使用普通方式备份
    ----------------------------------------------------mv用法结束-------------------------------------------------

    展开全文
  • 1.arm-none-linux-gnueabi-gcc下载http://www.veryarm.com/arm-none-linux-gnueabi-gccarm-none-linux-gnueabi-gcc是 Codesourcery 公司...可用于交叉编译ARM系统所有环节的代码,包括裸机程序、u-boot、Linux ker...

    1.arm-none-linux-gnueabi-gcc下载

    http://www.veryarm.com/arm-none-linux-gnueabi-gcc

    arm-none-linux-gnueabi-gcc是 Codesourcery 公司(目前已经被Mentor收购)基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。使用时,按照主机平台,可以下载以下任一版本中的一个,结果是一样的:

    • Linux解压版在Linux主机(如Ubuntu、RedHat等)直接解压即可使用。推荐方式!
    • Linux安装版在Linux主机下执行后按照提示安装后使用。
    • Windows解压版在Windows系统下解压后使用,但是需要MingW32。
    • Windows安装版在Windows系统下安装后使用。
    • RPM安装版RedHat系统安装包,新版本不提供该类安装包。
    • 源码版交叉编译器源代码,一般很少用到。

    为方便国内用户下载使用,我们从Codesourcery(Mentor)官网下载了所有版本的arm-none-linux-gnueabi-gcc编译器,并放到国内云盘上提供下载。因为版本很多,可能难以选择,但是我们建议您使用最新版本,即有最新~标志的下载项。

    1 Linux解压版

    gnu-csl-arm-2005Q1B-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2006q1-3-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2006q1-6-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2006q3-26-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2007q1-10-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2007q1-21-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2007q3-51-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2008q1-126-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2008q3-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2009q1-176-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.bz2 —— 下载
    arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2010.09-50-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2010q1-202-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2011.03-41-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2012.09-64-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2013.05-24-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2013.11-33-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 —— 下载
    arm-2014.05-29-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 最新~推荐!—— 下载

     

    2 Linux安装版

    arm-2006q3-26-arm-none-linux-gnueabi.bin —— 下载
    arm-2007q1-10-arm-none-linux-gnueabi.bin —— 下载
    arm-2007q1-21-arm-none-linux-gnueabi.bin —— 下载
    arm-2007q3-51-arm-none-linux-gnueabi.bin —— 下载
    arm-2008q1-126-arm-none-linux-gnueabi.bin —— 下载
    arm-2008q3-41-arm-none-linux-gnueabi.bin —— 下载
    arm-2008q3-72-arm-none-linux-gnueabi.bin —— 下载
    arm-2009q1-176-arm-none-linux-gnueabi.bin —— 下载
    arm-2009q1-203-arm-none-linux-gnueabi.bin —— 下载
    arm-2009q3-67-arm-none-linux-gnueabi.bin —— 下载
    arm-2010.09-50-arm-none-linux-gnueabi.bin —— 下载
    arm-2010q1-202-arm-none-linux-gnueabi.bin —— 下载
    arm-2011.03-41-arm-none-linux-gnueabi.bin —— 下载
    arm-2011.09-70-arm-none-linux-gnueabi.bin —— 下载
    arm-2012.03-57-arm-none-linux-gnueabi.bin —— 下载
    arm-2012.09-64-arm-none-linux-gnueabi.bin —— 下载
    arm-2013.05-24-arm-none-linux-gnueabi.bin —— 下载
    arm-2013.11-33-arm-none-linux-gnueabi.bin —— 下载
    arm-2014.05-29-arm-none-linux-gnueabi.bin —— 最新~ 下载

     

    3 Windows Mingw32 版

    gnu-csl-arm-2005Q1B-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2006q3-26-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2007q1-10-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2007q1-21-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2007q3-51-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2008q1-126-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2008q3-41-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2008q3-72-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2009q1-176-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2009q1-203-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2009q3-67-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2010.09-50-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2010q1-202-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2011.03-41-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2011.09-70-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2012.03-57-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2012.09-64-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2013.05-24-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2013.11-33-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 下载
    arm-2014.05-29-arm-none-linux-gnueabi-i686-mingw32.tar.bz2 —— 最新~ 下载

     

    4 Windows安装版

    gnu-csl-arm-2005Q1B-arm-none-linux-gnueabi.exe —— 下载
    arm-2006q1-3-arm-none-linux-gnueabi.exe —— 下载
    arm-2006q1-6-arm-none-linux-gnueabi.exe —— 下载
    arm-2006q3-26-arm-none-linux-gnueabi.exe —— 下载
    arm-2007q1-10-arm-none-linux-gnueabi.exe —— 下载
    arm-2007q1-21-arm-none-linux-gnueabi.exe —— 下载
    arm-2007q3-51-arm-none-linux-gnueabi.exe —— 下载
    arm-2008q1-126-arm-none-linux-gnueabi.exe —— 下载
    arm-2008q3-41-arm-none-linux-gnueabi.exe —— 下载
    arm-2008q3-72-arm-none-linux-gnueabi.exe —— 下载
    arm-2009q1-176-arm-none-linux-gnueabi.exe —— 下载
    arm-2009q1-203-arm-none-linux-gnueabi.exe —— 下载
    arm-2009q3-67-arm-none-linux-gnueabi.exe —— 下载
    arm-2010.09-50-arm-none-linux-gnueabi.exe —— 下载
    arm-2010q1-202-arm-none-linux-gnueabi.exe —— 下载
    arm-2011.03-41-arm-none-linux-gnueabi.exe —— 下载
    arm-2011.09-70-arm-none-linux-gnueabi.exe —— 下载
    arm-2012.03-57-arm-none-linux-gnueabi.exe —— 下载
    arm-2012.09-64-arm-none-linux-gnueabi.exe —— 下载
    arm-2013.05-24-arm-none-linux-gnueabi.exe —— 下载
    arm-2013.11-33-arm-none-linux-gnueabi.exe —— 下载
    arm-2014.05-29-arm-none-linux-gnueabi.exe —— 最新~ 下载

     

    5 PRM安装版

    arm-arm-none-linux-gnueabi-2007q3-51.i686.rpm —— 下载

     

    6 源码

    gnu-csl-arm-2005Q1B-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2006q1-3-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2006q1-6-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2006q3-26-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2007q1-10-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2007q1-21-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2007q3-51-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2008q1-126-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2008q3-41-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2008q3-72-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2009q1-176-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2009q1-203-arm-none-linux-gnueabi.src.tar.bz2.bz2 —— 下载
    arm-2009q3-67-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2010.09-50-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2011.03-41-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2011.09-70-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2012.03-57-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2012.09-64-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2013.05-24-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2013.11-33-arm-none-linux-gnueabi.src.tar.bz2 —— 下载
    arm-2014.05-29-arm-none-linux-gnueabi.src.tar.bz2 —— 最新~ 下载

     

    Mentor官方下载地址(需要注册,注册之后官方会发送一个下载地址到邮箱里面):http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/evaluations/

     

    文章来自VeryARM:http://www.veryarm.com/arm-none-linux-gnueabi-gcc,转载请保留。

    2.arm-none-linux-gnueabi交叉工具链与arm-linux-gcc 有区别吗?

    http://bdbaishitong.blog.163.com/blog/static/201493080201332094320957/
    eabi标准的要好些,可能arm-linux-gcc就是arm-none-linux-gnueabi的一个链接

    终于,郁闷已久的问题攻破了,用了三种配置交叉编译的方法,最终在开发板上实现成功了,现在想一想,有的时候真的也是运气。

        之前已经试验过使用arm-linux-gcc-3.4.1配置交叉编译编译环境,配置成功了,在开发板上失败了~

        后来使用脚本创建交叉编译环境(crosstool-0.43),配置成功了(这个用了相当长的时间),在开发板上失败了~

        终于,在一个偶然的机会(其实是浏览无数网页后),我终于找到了一个好的方法,并成功在开发板上运行。先说一下网上的一些方法,有些所谓的默认安装了一些程序,但是在实际运行时发现根本没有安装,而且很多地方不知道该如何安装。再有就是文章一上来就说安装什么什么软件,但是在网上搜根本找不到。只能说很多人只转载文章,根本没有试验过。但是我还是幸运的找到了一个靠谱的文章http://www.adamjiang.com/pukiwiki/index.php?%E7%BC%96%E8%AF%91mini2440%E5%B7%A5%E5%85%B7%E9%93%BE

        根据上面的做法,我成功了,在此小做总结。

        首先下载工具链,幸好这篇文章给出了这个网站,要不还不知道要找多久。

    http://www.codesourcery.com/.../arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

        70多M很快就下完了,若不是root用户下,可以将文件解压到home的某个目录下。

    tar xjvfo arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /home/..../arm

        那么,在这个目录下会生成一个arm-2008q3文件夹。

        更改路径不用说了,或者临时或者非临时。我就直接改~/.bashrc了,在最后加:

        export PATH=/usr/local/arm-2008q3/bin:${PATH}

        ok~现在使你路径生效吧:

        source ~/.bashrc

        再输入:export CROSS_COMPILE=arm-none-linux-gnueabi-

        作用是:当你编译软件的时候,Makefile在大多数情况向会取得CROSS_COMPILE所指定的交叉编译工具。

        也可以输入:export CROSS_COMPILE=/usr/local/arm-2008q3/bin/arm-none-linux-gnueabi-

        这种种方法是通过绝对路径来指定交叉编译工具,这样做可以更精确的为交叉编译定位,同时可以避免很多错误。你可以通过下面这样的例子指定交叉编译工具的绝对路径。

        现在一切就绪,随便编译个hello world.c文件,用arm-none-linux-gnueabi-gcc helloworld.c -o helloworld,生成的helloworld文件通过nfs挂载到板子上。

        最最后,在minicom下输入:./helloworld。

        就会显示你希望见到的输出了。。。。。。


    首先,从下面的地址下载工具链

    http://www.codesourcery.com/.../arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

    等待下载完成后,将工具链解压到/usr/local/目录,如果你没有编译主机上的root权限的话,你可以将工具链解压到Linux用户的home目录中的某个位置(比如${HOME}/bin)

    tar xjvfo arm-2008q3-72-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /usr/local

    这个操作将会在/usr/local目录中创建一个么名为arm-2008q3的目录。

    接下来,你需要将这个新进添加的工具链的位置添加到PATH变量之中。编译你的~/.bashrc文件,在其中加入新的PATH变量

    export PATH=/usr/local/arm-2008q3/bin:${PATH}

    使用source命令在当前shell中启用这个变化,这样你就不需要重新登入系统使用新变量了。

    source ~/.bashrc

    或者直接在shell中使用export对当前shell做同样的操作。

    export PATH=/usr/local/arm-2008q3/bin:${PATH}

    如果你并不是bash用户,你可以修改你使用的shell所对应的环境设置文件,比如,对于zsh来说,您应该修改~/.zsh文件。或者,你需要在每次登入shell后首先运行上面的export操作。

    因为在开发主机上进行交叉编译意味着使用开发主机的能力生成另外一个体系结构上运行的二进制代码,所以,一般来说,你需要编译的软件通常都会接受一个叫做CROSS_COMPILE的变量来指定产生哪个体系结构的代码。所以,配置工具链的最后一个步骤就是设置这个变量。如果你现在使用ls命令查看以下

    ls /usr/local/arm-2008q3/bin/

    目录的话,你会看到很多以arm-none-linux-gnueabi-开始的可执行文件,而这个共同的前缀就是你需要的CROSS_COMPILE变量。现在,使用export命令设置环境变量

    export CROSS_COMPILE=arm-none-linux-gnueabi-

    现在,当你编译软件的时候,Makefile在大多数情况向会取得CROSS_COMPILE所指定的交叉编译工具。当然,前提是,这些交叉编译工具在你的PATH变量上。还有一种方法是通过绝对路径来指定交叉编译工具,这样做可以更精确的为交叉编译定位,同时可以避免很多错误。你可以通过下面这样的例子指定交叉编译工具的绝对路径。

    export CROSS_COMPILE=/usr/local/arm-2008q3/bin/arm-none-linux-gnueabi-

    在大多数情况下,你并不需要将上面的export命令加入~/.bashrc这样的文件,因为,你并不总是需要它们来做交叉编译。比如,你仅仅希望编译运行在开发主机上的程序时。

    这样,工具链就准备好了。



    3.arm交叉编译器gnueabi、none-eabi、arm-eabi、gnueabihf、gnueabi区别

    http://www.veryarm.com/296.html

    命名规则

    交叉编译工具链的命名规则为:arch [-vendor] [-os] [-(gnu)eabi]

    • arch – 体系架构,如ARM,MIPS
    • vendor – 工具链提供商
    • os – 目标操作系统
    • eabi – 嵌入式应用二进制接口(Embedded Application Binary Interface

    根据对操作系统的支持与否,ARM GCC可分为支持和不支持操作系统,如

    • arm-none-eabi:这个是没有操作系统的,自然不可能支持那些跟操作系统关系密切的函数,比如fork(2)。他使用的是newlib这个专用于嵌入式系统的C库。
    • arm-none-linux-eabi:用于Linux的,使用Glibc

     

     实例

    1、arm-none-eabi-gcc

    ARM architectureno vendornot target an operating systemcomplies with the ARM EABI
    用于编译 ARM 架构的裸机系统(包括 ARM Linux 的 boot、kernel,不适用编译 Linux 应用 Application),一般适合 ARM7、Cortex-M 和 Cortex-R 内核的芯片使用,所以不支持那些跟操作系统关系密切的函数,比如fork(2),他使用的是 newlib 这个专用于嵌入式系统的C库。

    2、arm-none-linux-gnueabi-gcc

    (ARM architectureno vendorcreates binaries that run on the Linux operating systemand uses the GNU EABI)

    主要用于基于ARM架构的Linux系统,可用于编译 ARM 架构的 u-boot、Linux内核、linux应用等。arm-none-linux-gnueabi基于GCC,使用Glibc库,经过 Codesourcery 公司优化过推出的编译器。arm-none-linux-gnueabi-xxx 交叉编译工具的浮点运算非常优秀。一般ARM9、ARM11、Cortex-A 内核,带有 Linux 操作系统的会用到。

    3、arm-eabi-gcc

    Android ARM 编译器。

    4、armcc

    ARM 公司推出的编译工具,功能和 arm-none-eabi 类似,可以编译裸机程序(u-boot、kernel),但是不能编译 Linux 应用程序。armcc一般和ARM开发工具一起,Keil MDK、ADS、RVDS和DS-5中的编译器都是armcc,所以 armcc 编译器都是收费的(爱国版除外,呵呵~~)。

    5、arm-none-uclinuxeabi-gcc 和 arm-none-symbianelf-gcc

    arm-none-uclinuxeabi 用于uCLinux,使用Glibc。

    arm-none-symbianelf 用于symbian,没用过,不知道C库是什么 。

     

    Codesourcery

    Codesourcery推出的产品叫Sourcery G++ Lite Edition,其中基于command-line的编译器是免费的,在官网上可以下载,而其中包含的IDE和debug 工具是收费的,当然也有30天试用版本的。

    目前CodeSourcery已经由明导国际(Mentor Graphics)收购,所以原本的网站风格已经全部变为 Mentor 样式,但是 Sourcery G++ Lite Edition 同样可以注册后免费下载。

    Codesourcery一直是在做ARM目标 GCC 的开发和优化,它的ARM GCC在目前在市场上非常优秀,很多 patch 可能还没被gcc接受,所以还是应该直接用它的(而且他提供Windows下[mingw交叉编译的]和Linux下的二进制版本,比较方便;如果不是很有时间和兴趣,不建议下载 src 源码包自己编译,很麻烦,Codesourcery给的shell脚本很多时候根本没办法直接用,得自行提取关键的部分手工执行,又费精力又费时间,如果想知道细节,其实不用自己编译一遍,看看他是用什么步骤构建的即可,如果你对交叉编译器感兴趣的话。

    ABI 和 EABI

    ABI:二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)。在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口。

    EABI:嵌入式ABI。嵌入式应用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。开发者使用自己的汇编语言也可以使用 EABI 作为与兼容的编译器生成的汇编语言的接口。

    两者主要区别是,ABI是计算机上的,EABI是嵌入式平台上(如ARM,MIPS等)。

     

    arm-linux-gnueabi-gcc 和 arm-linux-gnueabihf-gcc

    两个交叉编译器分别适用于 armel 和 armhf 两个不同的架构,armel 和 armhf 这两种架构在对待浮点运算采取了不同的策略(有 fpu 的 arm 才能支持这两种浮点运算策略)。

    其实这两个交叉编译器只不过是 gcc 的选项 -mfloat-abi 的默认值不同。gcc 的选项 -mfloat-abi 有三种值 soft、softfp、hard(其中后两者都要求 arm 里有 fpu 浮点运算单元,soft 与后两者是兼容的,但 softfp 和 hard 两种模式互不兼容):
    soft: 不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式。
    softfp: armel架构(对应的编译器为 arm-linux-gnueabi-gcc )采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。
    hard: armhf架构(对应的编译器 arm-linux-gnueabihf-gcc )采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换,性能最好,但是中断负荷高。

    把以下测试使用的C文件内容保存成 mfloat.c:
    #include <stdio.h>
    int main(void)
    {
        double a,b,c;
        a = 23.543;
        b = 323.234;
        c = b/a;
        printf(“the 13/2 = %f\n”, c);
        printf(“hello world !\n”);
        return 0;
    }

    1、使用 arm-linux-gnueabihf-gcc 编译,使用“-v”选项以获取更详细的信息:
    # arm-linux-gnueabihf-gcc -v mfloat.c
    COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=hard’ ‘-mfpu=vfpv3-d16′ ‘-mthumb’
    -mfloat-abi=hard

    可看出使用hard硬件浮点模式。

    2、使用 arm-linux-gnueabi-gcc 编译:
    # arm-linux-gnueabi-gcc -v mfloat.c
    COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=softfp’ ‘-mfpu=vfpv3-d16′ ‘-mthumb’
    -mfloat-abi=softfp

    可看出使用softfp模式。

     

    交叉编译工具

    参考资料

    1. 交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别:http://www.cnblogs.com/xiaotlili/p/3306100.html
    2. arm-none-linux-gnueabi,arm-none-eabi 与arm-eabi 区别:http://blog.csdn.net/mantis_1984/article/details/21049273
    3. What’s the difference between arm-linux- / arm-none-linux-gnueabi- / arm-fsl-linux-gnueabi- in LTIB?https://community.freescale.com/thread/313490

    文章来自VeryARM:http://www.veryarm.com/296.html,转载请保留。


    http://blog.csdn.net/mantis_1984/article/details/21049273

    arm-none-linux-gnueabi
    链接工具命名:
        arch-vendor-(os-)abi

    1、arm-none-linux-gnueabi (ARM architecture, no vendor, linux OS, and the gnueabi ABI)
            用于编译ARM架构的u-boot、linux内核、linux应用等
    2、arm-none-eabi 
            用于编译ARM架构的裸机系统(包括linux的 boot、kernel)
    3、arm-eabi 
            Android ARM 编译器

    arm-none-linux-gnueabi交叉编译器是codesourcery公司推出的,基于GCC,但是进行过优化的编译器。官方网站
    http://www.codesourcery.com/
    codesourcery推出的产品叫Sourcery G++ Lite Edition,其中基于command-line的编译器是免费的,在官网上可以下载,而其中包含的IDE和debug 工具是收费的,当然也有30天试用版本的。
    arm-none-linux-gnueabi-xxx用它的最大理由我想应该是浮点运算。

    结果测试发现: int backtrace(void **buffer,int size) 在实际使用过程中,只能打印出空的调用堆栈
    而arm-linux-gcc可以!



    5.交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

    http://www.cnblogs.com/xiaotlili/p/3306100.html

    交叉编译器 arm-linux-gnueabi 和 arm-linux-gnueabihf 的区别

    自己之前一直没搞清楚这两个交叉编译器到底有什么问题,特意google一番,总结如下,希望能帮到道上和我有同样困惑的兄弟…..

    一. 什么是ABI和EABI
    1) ABI: 二进制应用程序接口(Application Binary Interface (ABI) for the ARM Architecture)
    在计算机中,应用二进制接口描述了应用程序(或者其他类型)和操作系统之间或其他应用程序的低级接口.
    ABI涵盖了各种细节,如:
    数据类型的大小、布局和对齐;
    调用约定(控制着函数的参数如何传送以及如何接受返回值),例如,是所有的参数都通过栈传递,还是部分参数通过寄存器传递;哪个寄存器用于哪个函数参数;通过栈传递的第一个函数参数是最先push到栈上还是最后;
    系统调用的编码和一个应用如何向操作系统进行系统调用;
    以及在一个完整的操作系统ABI中,目标文件的二进制格式、程序库等等。
    一个完整的ABI,像Intel二进制兼容标准 (iBCS) ,允许支持它的操作系统上的程序不经修改在其他支持此ABI的操作体统上运行。
    ABI不同于应用程序接口(API),API定义了源代码和库之间的接口,因此同样的代码可以在支持这个API的任何系统中编译,ABI允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行。

    2) EABI: 嵌入式ABI
    嵌入式应用二进制接口指定了文件格式、数据类型、寄存器使用、堆积组织优化和在一个嵌入式软件中的参数的标准约定。
    开发者使用自己的汇编语言也可以使用EABI作为与兼容的编译器生成的汇编语言的接口。
    支持EABI的编译器创建的目标文件可以和使用类似编译器产生的代码兼容,这样允许开发者链接一个由不同编译器产生的库。
    EABI与关于通用计算机的ABI的主要区别是应用程序代码中允许使用特权指令,不需要动态链接(有时是禁止的),和更紧凑的堆栈帧组织用来节省内存。广泛使用EABI的有Power PC和ARM.

    二. gnueabi相关的两个交叉编译器: gnueabi和gnueabihf
    在debian源里这两个交叉编译器的定义如下:
    gcc-arm-linux-gnueabi – The GNU C compiler for armel architecture
    gcc-arm-linux-gnueabihf – The GNU C compiler for armhf architecture
    可见这两个交叉编译器适用于armel和armhf两个不同的架构, armel和armhf这两种架构在对待浮点运算采取了不同的策略(有fpu的arm才能支持这两种浮点运算策略)

    其实这两个交叉编译器只不过是gcc的选项-mfloat-abi的默认值不同. gcc的选项-mfloat-abi有三种值soft,softfp,hard(其中后两者都要求arm里有fpu浮点运算单元,soft与后两者是兼容的,但softfp和hard两种模式互不兼容):
    soft   : 不用fpu进行浮点计算,即使有fpu浮点运算单元也不用,而是使用软件模式。
    softfp : armel架构(对应的编译器为gcc-arm-linux-gnueabi)采用的默认值,用fpu计算,但是传参数用普通寄存器传,这样中断的时候,只需要保存普通寄存器,中断负荷小,但是参数需要转换成浮点的再计算。
    hard   : armhf架构(对应的编译器gcc-arm-linux-gnueabihf)采用的默认值,用fpu计算,传参数也用fpu中的浮点寄存器传,省去了转换, 性能最好,但是中断负荷高。

    把以下测试使用的c文件内容保存成mfloat.c:
    #include <stdio.h>
    int main(void)
    {
    double a,b,c;
    a = 23.543;
    b = 323.234;
    c = b/a;
    printf(“the 13/2 = %f\n”, c);
    printf(“hello world !\n”);
    return 0;
    }

    1)使用arm-linux-gnueabihf-gcc编译,使用“-v”选项以获取更详细的信息:
    # arm-linux-gnueabihf-gcc -v mfloat.c
    COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=hard’ ‘-mfpu=vfpv3-d16′ ‘-mthumb’
    -mfloat-abi=hard,可看出使用hard硬件浮点模式。

    2)使用arm-linux-gnueabi-gcc编译:
    # arm-linux-gnueabi-gcc -v mfloat.c
    COLLECT_GCC_OPTIONS=’-v’ ‘-march=armv7-a’ ‘-mfloat-abi=softfp’ ‘-mfpu=vfpv3-d16′ ‘-mthumb’
    -mfloat-abi=softfp,可看出使用softfp模式。

    三. 拓展阅读
    下文阐述了ARM代码编译时的软浮点(soft-float)和硬浮点(hard-float)的编译以及链接实现时的不同。从VFP浮点单元的引入到软浮点(soft-float)和硬浮点(hard-float)的概念

    VFP (vector floating-point)
    从ARMv5开始,就有可选的 Vector Floating Point (VFP) 模块,当然最新的如 Cortex-A8, Cortex-A9 和 Cortex-A5 可以配置成不带VFP的模式供芯片厂商选择。
    VFP经过若干年的发展,有VFPv2 (一些 ARM9 / ARM11)、 VFPv3-D16(只使用16个浮点寄存器,默认为32个)和VFPv3+NEON (如大多数的Cortex-A8芯片) 。对于包含NEON的ARM芯片,NEON一般和VFP公用寄存器。

    硬浮点Hard-float
    编译器将代码直接编译成发射给硬件浮点协处理器(浮点运算单元FPU)去执行。FPU通常有一套额外的寄存器来完成浮点参数传递和运算。
    使用实际的硬件浮点运算单元FPU当然会带来性能的提升。因为往往一个浮点的函数调用需要几个或者几十个时钟周期。

    软浮点 Soft-float
    编译器把浮点运算转换成浮点运算的函数调用和库函数调用,没有FPU的指令调用,也没有浮点寄存器的参数传递。浮点参数的传递也是通过ARM寄存器或者堆栈完成。
    现在的Linux系统默认编译选择使用hard-float,即使系统没有任何浮点处理器单元,这就会产生非法指令和异常。因而一般的系统镜像都采用软浮点以兼容没有VFP的处理器。

    armel ABI和armhf ABI
    在armel中,关于浮点数计算的约定有三种。以gcc为例,对应的-mfloat-abi参数值有三个:soft,softfp,hard。
    soft是指所有浮点运算全部在软件层实现,效率当然不高,会存在不必要的浮点到整数、整数到浮点的转换,只适合于早期没有浮点计算单元的ARM处理器;
    softfp是目前armel的默认设置,它将浮点计算交给FPU处理,但函数参数的传递使用通用的整型寄存器而不是FPU寄存器;
    hard则使用FPU浮点寄存器将函数参数传递给FPU处理。
    需要注意的是,在兼容性上,soft与后两者是兼容的,但softfp和hard两种模式不兼容。
    默认情况下,armel使用softfp,因此将hard模式的armel单独作为一个abi,称之为armhf。
    而使用hard模式,在每次浮点相关函数调用时,平均能节省20个CPU周期。对ARM这样每个周期都很重要的体系结构来说,这样的提升无疑是巨大的。
    在完全不改变源码和配置的情况下,在一些应用程序上,使用armhf能得到20%——25%的性能提升。对一些严重依赖于浮点运算的程序,更是可以达到300%的性能提升。

    Soft-float和hard-float的编译选项
    在CodeSourcery gcc的编译参数上,使用-mfloat-abi=name来指定浮点运算处理方式。-mfpu=name来指定浮点协处理的类型。
    可选类型如fpa,fpe2,fpe3,maverick,vfp,vfpv3,vfpv3-fp16,vfpv3-d16,vfpv3-d16-fp16,vfpv3xd,vfpv3xd-fp16,neon,neon-fp16,vfpv4,vfpv4-d16,fpv4-sp-d16,neon-vfpv4等。
    使用-mfloat-abi=hard (等价于-mhard-float) -mfpu=vfp来选择编译成硬浮点。使用-mfloat-abi=softfp就能兼容带VFP的硬件以及soft-float的软件实现,运行时的连接器ld.so会在执行浮点运算时对于运算单元的选择,
    是直接的硬件调用还是库函数调用,是执行/lib还是/lib/vfp下的libm。-mfloat-abi=soft (等价于-msoft-float)直接调用软浮点实现库。

    在ARM RVCT工具链下,定义fpu模式:
    –fpu softvfp
    –fpu softvfp+vfpv2
    –fpu softvfp+vfpv3
    –fpu softvfp+vfpv_fp16
    –fpu softvfp+vfpv_d16
    –fpu softvfp+vfpv_d16_fp16.

    定义浮点运算类型
    –fpmode ieee_full : 所有单精度float和双精度double的精度都要和IEEE标准一致,具体的模式可以在运行时动态指定;
    –fpmode ieee_fixed : 舍入到最接近的实现的IEEE标准,不带不精确的异常;
    –fpmode ieee_no_fenv :舍入到最接近的实现的IEEE标准,不带异常;
    –fpmode std :非规格数flush到0、舍入到最接近的实现的IEEE标准,不带异常;
    –fpmode fast : 更积极的优化,可能会有一点精度损失。

     

    Remember don't at a loss and let the brain to calm down when comes questions, so can solve them faster!

    http://blog.csdn.net/nokiaguy/article/details/8509739

    X86架构的CPU采用的是复杂指令集(Complex Instruction Set Computer,CICS),而ARM架构的CPU使用的是精简指令集(Reduced Instruction Set Computer,RISC)。由于这两种架构的CPU使用了不同的指令集,因此在X86架构上开发可运行在ARM架构上的程序就必须要使用交叉编译器。通常交叉编译器和相关工具包含的了很多可执行文件以及大量的共享库及头文件等资源。这些资源的集合称为交叉编译环境。

            在Internet上可以找到集成好的交叉编译环境,Android NDK和Android源代码中也包含的交叉编译环境。当然,如果我们需要一个完全独立的交叉编译环境,可以下载集成好的交叉编译环境,也可以自己制作(比较复杂,建议读者下载集成好的交叉编译环境)。下面介绍一个CodeSourcery交叉编译环境,这个交叉编译环境直接下载安装就可以安装。

          读者可通过如下的网站访问CodeSourcery下载页面。

    http://www.mentor.com/embedded-software/sourcery-tools/sourcery-codebench/editions/lite-edition/

        上面的页面并未直接提供CodeSourcery的下载链接,读者可以点击“Download the GNU/Linux Release”链接,并输入Email(建议使用Gmail)、地址等信息,最后点击“Get Lite!”按钮提交信息。如图2-29所示。最后系统会将下载地址发送到刚才输入的Email。


    进入下载页面,会看到如图2-30所示的不同版本的下载链接,选择最新的版本即可。

                                 图2-30  CodeSourcery的不同版本

           进入CodeSourcery的下载页面后,会看到如图2-31所示的下载链接。目前CodeSourcery有Windows和Linux两个版本。本书使用的是第1个(IA32 GNU/Linux Installer)。

        Linux版本的安装文件是bin格式,读者可执行下面的命令安装CodeSourcery。其中package表示CodeSourcery的安装文件名。

    sh package.bin

        执行上面的命令后,会显示可视化的安装界面,如图2-32所示,读者可按提示安装CodeSourcery。

         为了使用方便,建议读者将如下路径加到PATH环境变量中。

       /root/compilers/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_GNU_Linux/bin

        下面编写一个简单的C程序来测试一下这个交叉编译环境。

    1. //  first.c  
    2. #include <stdio.h>  
    3. int main()  
    4. {  
    5.     printf("first arm program\n");  
    6.     return 0;  
    7. }  

    输入下面的命令编译first.c文件(需要加-static选项)。

    # arm-none-linux-gnueabi-gcc -static -o first first.c

    输入下面的命令将first文件上传到任意的Android设备的/data/local目录中(没有root权限也可以)。

    # adb push first /data/local

    使用adb shell命令进入Android设备的控制台,并进入/data/local目录,执行如下的命令

    # ./first

         执行上面的命令就会输出“first arm program”信息。first程序在X86架构上运行的Ubuntu Linux中是无法运行的。读者可以试着在Ubuntu Linux中运行first程序,看看会发生什么。

    注意:在安装Code Sourcery的过程中会在/lib目录寻找一个libc.so.6库文件,但在Ubuntu Linux11.04及以上版本/lib目录已经没有libc.so.6库文件了。这个库文件被放在了其他的目录。在32位的Ubuntu Linux中该文件的路径是/lib/i386-linux-gnu/libc.so.6,在64位的Ubuntu Linux中该文件的路径是/lib/x86_64-linux-gnu/libc.so.6。在安装Code Sourcery之前可以使用ln命令为libc.so.6文件在/lib目录建立一个链接。


    下一篇:开发可统计单词个数的Android驱动程序(1) 


    本文节选至《Android深度探索(卷1):HAL与驱动开发》,接下来几篇文章将详细阐述如何开发ARM架构的Linux驱动,并分别利用android程序、NDK、可执行文件测试Linux驱动。可在ubuntu Linux、Android模拟器和S3C6410开发板(可以选购OK6410-A开发板,需要刷Android)


    7.arm-none-linux-gnueabi交叉工具链安装
    http://www.eefocus.com/PSOCPSOC/blog/11-08/228845_b0bc2.html

    arm-none-linux-gnueabi交叉工具链与arm-linux-gcc 的区别:

    参考网友的说法:eabi标准的要好些,可能arm-linux-gcc就是arm-none-linux-gnueabi的一个链接

    参考网友的一些做法:

    1 下载arm-2009q1-203-arm-none-linux-gnueabi.bin
    2 执行./arm-2009q1-203-arm-none-linux-gnueabi.bin 在安装的时候选择推荐的路径/opt/arm2009q1
    3 修改环境变量  gedit~/.bashrc 在文件最后面添加export PATH="/opt/arm-2009q1/bin:$PATH"
    4 修改以后执行 source /.bashrc 使得刚才的设置生效
    5 测试安装结果 输入 arm-none-linux-gnueabi-gcc6 提示NO input file 成功…… 

    我参考他的方法,在网上找arm-2009q1-203-arm-none-linux-gnueabi.bin,但是找了N久没有找到,所以没有参考他的方法,看了一些TI网站的资料,为方便自己查阅,也方便网友参考,少走弯路,特此写下我的安装过程和一些心得,如果网友发现错误,敬请指正。

    1:下载交叉编译工具链

    下载链接为:http://www.codesourcery.com/sgpp/lite/arm/portal/release858

    下载linux/GNU的就可以了,下载下来名字为:

    arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2

    下面要使用这个文件安装

    另外说明我是使用的root权限,#sudo -i 切换到root权限下。

    默认是安装在/opt目录下的,一般的Ubuntu安装完成之后都会在根目录下有一个opt目录,

    如果没有就创建一个新的目录

    # mkdir -p /opt

    2:解压源文件

    参考TI的安装,安装路径为/opt目录,解压源文件到/opt目录下。


    # tar -vxjf arm-2009q1-203-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2 -C /opt

    3:设置环境变量

    注意我使用的是root权限,如果不是使用的root权限就要改你对应的相应的文件了

    # gedit     ~/.bashrc

    在.bashrc文件的末尾最后添加一行,来增加一个环境变量

    export PATH="/opt/arm-2009q1/bin:$PATH"

    4:使得刚才的设置生效
    # source /.bashrc

    5查看linux的环境变量
    #echo $PATH
    # printenv

    6 测试安装结果 输入

    # arm-none-linux-gnueabi-gcc

    提示NO input file ,

    到此为止安装完毕了,OK,大功告成。


    8、linux下arm-none-linux-gnueabi交叉编译环境的建立

    http://blog.const.net.cn/a/17516.htm

    1.访问codesourcery官方网站下载最新的ARM交叉编译工具链,下载版本arm-2009q3:[喝小酒的网摘]http://blog.const.net.cn/a/17516.htm
    http://www.codesourcery.com/sgpp/lite/arm/portal/package5383/public/arm-none-linux-gnueabi/arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
     
    2.解压
    $ tar -jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.bz2
     
    3.移动到/usr下面
    mv arm-2009q3 /usr/
     
    4.设置环境变量
     $ sudo su
     # vim /etc/bash.bashrc
     在最后加上:
                    export PATH=$PATH:/usr/arm-2009q3/bin
                    export PATH
     启动环境变量设置:
                    #source /root/.bashrc
     检查是否设置成功:
                    #echo $PATH
            结果:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/arm-2009q3/bin
      说明设置好了 :-)
     
    5.检查安装是否成功:
         $ arm-none-linux-gnueabi-gcc -v
         ==>
               Using built-in specs.
    Target: arm-none-linux-gnueabi
    ...
    gcc version 4.4.1 (Sourcery G++ Lite 2009q3-67) 
    说明安装成功。[喝小酒的网摘]http://blog.const.net.cn/a/17516.htm


    展开全文
  • linux中mv命令使用

    2017-04-13 11:08:42
    今天服务器的硬盘容量在告警,于是就对服务器的数据做归档处理,...视mv命令第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录。当第二个参数类型是文件时,mv命令完成文
  • linux中mv命令使用详解

    2019-03-26 23:28:01
    mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录。 命令的格式: mv [选项] 源文件或目录 目标文件或目录 命令功能: mv命令...
  • Linux 下查看帮助说明,可以用mv –help或man mv, 永远是最快捷的方式@ubuntu:~$ mv --help Usage: mv [OPTION]... [-T] SOURCE DEST or: mv [OPTION]... SOURCE... DIRECTORY or: mv [OPTION]... -t DIRECTORY ...
  • 在安装过程可能会报libaio缺失,所以提前安装:yum install libaio 安装流程: 1、在官网上下载mysql-5.7.22-linux,我下载的是mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz。 2、解压tar -zxvf mysql-5.7.22...
  • 1. 从官网下载 mysql-5.7.13-linux-glibc2.5-x86_64.tar.gz 经测试, 本文还适用于如下版本:  mysql-5.7.10-linux-glibc2.5-x86_64.tar.gz  mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz mysql-5.7.12-linux-...
  • 不管你在使用什么版本的Linux系统,mv 都默认安装在你的Linux系统上了。来看一下 mv 命令在日常操作的一些例子。 [root@localhost tmp]# mv --help Usage: mv [OPTION]... [-T] SOURCE DEST  or: mv [OPTION]....
  • mysql-5.6.30-linux-glibc2.5-x86_64.tar.gz下载地址: 点击打开链接 系统版本: [mysql@localhost scripts]$ uname -a Linux localhost.localdomain 2.6.32-358.el6.x86_64 #1 SMP Fri Feb 22 00:31:26 UTC ...
  • mv(选项)(参数) 剪切,或在同目录下移动重命名 1.如果目标文件是文件夹,则源文件直接移动到该文件夹内,名字还是源文件的名字。 2.如果目标文件时文件,则源文件移动的同时也会更改名字 3.如果源文件为多个,则...
  • 一 官网下载 mysql-5.7.12-linux-glibc2.5-x86_64.tar.gz 目前最新为5.7.16,可以直接下载mysql-5.7.16-linux-glibc2.5-x86_64.tar.gz, 这里用的是5.7.12,未下载最新的,不过,安装方式一样。 官网地址: ...
  • llinux命令mv同时移动多个文件: mv可以把多个文件移动到一个文件夹(目录)里面,比如:有a b c三个文件,一个目录d,用下面命令就能将a b c移动到d $ mv a b c d 需要注意的是,目录d必须在最后面,而且它前面不能...
  • wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz (32位的下载 wget 'http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.16-linux-glibc2.5-...
  • arm-none-linux-gnueabi交叉工具链安装 ,介绍,区别总结 <span class="link_postdate">2015-07-01 11:42</span>
  • 简述mv 命令用来对文件或目录重新命名,或者将文件从一个目录移到另一个目录。如果将一个文件移到一个已经存在的目标文件,则目标文件的内容将被覆盖。
1 2 3 4 5 ... 20
收藏数 91,941
精华内容 36,776
热门标签
关键字:

-t linux中mv