一、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更新了(修改)