• linux与Windows使用编译区别及makefile文件编写


    一、Windows与;Linux嵌入式开发区别

    Windows下编辑、编译、执行  

      编辑: sourceInsight;ADS;

      编译:指定链接地址,指定链接顺序,编译

      执行:烧写到单板再启动

    Linux下编辑、编译、执行

      编辑可在Windows下编写上传

      编译:链接脚本(lds),用命令行链接时,文件顺序(makefile)gcc -o ;由makefile执行可以得到结果

      执行make

    gcc、ld、objcopy、objdump等,编译出来的在x86上运行

    arm-linux-gcc,arm-linux-ld,arm-linux-objcopy,arm-linux-objdump在ARM上运行

    arm-linux-objcopy被用来复制一个目标文件的内容到另一个文件中,可以使用不同源文件的格式来输出目的文件,即可以进行格式转换,常用来将ELF格式的可执行文件转换为二进制文件。

    arm-linux-objdump用于先生二进制信息,本书用来查看反汇编代码

      -c 预处理、编译和汇编,但不连接,生产obj文件

      -S编译胡即停止,不进行汇编

      -E预处理后即停止,不进行编译

      -o file指定输出文件为file,无论是预处理、编译、汇编还是连接,这个文件都可以使用。默认输出为a.o

      -v显示制作GCC工作自身时的配置命令,同时显示编译器驱动程序、预处理器、编译器的版本号

      -Wall基本打开了所有需要注意的警告信息

    二、makefile介绍

      (规则,依赖)

      目标:依赖1 依赖2     hello :hello.c a.c

      TAB 命令                   gcc -o hello hello.c a.c

    makefile 命令能被执行的条件:

    1目标不存在           hello :hello.c a.c

    2依赖已更新             gcc -o hello hello.c a.c

          没有hello这个文件

          hello.c或者a.c更新了(修改)

      

  • 相关阅读:
    Timer Pattern
    la négation
    expression de la fréquence
    .NET 索引器
    JQuery.Gantt(甘特图) 开发指南
    .NET 预处理器指令
    .NET 数据类型之匿名类型(var)
    .NET base与this
    .NET using关键字
    .NET 基础语句
  • 原文地址:https://www.cnblogs.com/xubeiping0930/p/4567719.html
Copyright © 2020-2023  润新知