1.选择哪个编译器CC。比如CC:=gcc

2.使用的cpu类型CFLAGS1,CFLAGS2。这个错了会有提示,我虚拟器就用corei7就OK

cc1: error: bad value (‘armv4t’) for ‘-march=’ switch
cc1: note: valid arguments to ‘-march=’ switch are: nocona core2 nehalem corei7 westmere sandybridge corei7-avx ivybridge core-avx-i haswell core-avx2 broadwell skylake skylake-avx512 bonnell atom silvermont slm knl x86-64 eden-x2 nano nano-1000 nano-2000 nano-3000 nano-x2 eden-x4 nano-x4 k8 k8-sse3 opteron opteron-sse3 athlon64 athlon64-sse3 athlon-fx amdfam10 barcelona bdver1 bdver2 bdver3 bdver4 znver1 btver1 btver2

3.引导文件sourmain,即有main函数的文件。比如sourmain=uart_main.c

4.编译生成输出的文件名exes。比如exes=out

#号开头的是注释

运行一下./out

成功了。

以下范例中

main函数所在文件uart_main.c

输出可执行文件out,outarm47,outarm433

范例(i5模版,windows 里装linux虚拟机)

CC:=gcc
#CC:=/usr/arm/arm-linaro-arm-linux-gnueabihf-4.7/bin/arm-linux-gnueabihf-gcc
#CC:=/usr/arm/arm-none-linux-gnueabi-4.3.3/4.3.3/bin/arm-none-linux-gnueabi-gcc
#CC:=gcc
AR:=ar -rc
#CFLAGS1:=-Wall -g  -liconv   -lpthread   -lrt -ldl -march=armv4t -c
#CFLAGS2:=-Wall -g  -lrt -ldl  -lpthread  -march=armv4t  -lm -oCFLAGS1:=-Wall -g  -liconv   -lpthread   -lrt -ldl -march=corei7 -c
CFLAGS2:=-Wall -g  -lrt -ldl  -lpthread  -march=corei7  -lm -oSRC = $(wildcard src/*.c) $(wildcard src/lt5189/*.c)
SRO = $(wildcard src/*.o)  $(wildcard ./*.o)
sourmain=uart_main.c
objects =libkjdh.a
USERSRO=$(wildcard lib/tmp/*.o)
objectlib=$(wildcard lib/libkjdh.a)
exes=out
all:
#@echo $(SRC)
#$(CC) $(SRC) $(CFLAGS1)
#@echo $(SRO)
#@cp  $(SRO)  ./lib/tmp
#$(AR) $(objects) $(SRO)
#@cp   $(objects) ./lib
#$(CC) $(sourmain) $(objects) -L. -static -o $(exes)#   $(CC) $(sourmain) $(objectlib) $(CFLAGS2)  $(exes)$(CC) $(sourmain) $(SRC) $(CFLAGS2) $(exes)#@rm -vf $(SRO) $(objects)
lib: $(CC) $(SRC) $(CFLAGS1)@mkdir lib/tmp -p$(AR) $(objects) $(SRO)@mv   $(objects) ./lib
#   @cp   $(SRO)  ./lib/tmp @rm -vf $(SRO)@mv *.o ./lib/tmp
clean:@rm -vf  $(exes)@rm -vf $(objects)@rm -vf $(SRO)@rm -vf -R ./lib/

范例(模版S3C2440)

#CC:=/usr/arm/arm-linaro-arm-linux-gnueabihf-4.7/bin/arm-linux-gnueabihf-gccCC:=/usr/arm/arm-none-linux-gnueabi-4.3.3/4.3.3/bin/arm-none-linux-gnueabi-gcc
#CC:=gcc
AR:=ar -rc
CFLAGS1:=-Wall -g  -liconv   -lpthread   -lrt -ldl -march=armv4t -c
CFLAGS2:=-Wall -g  -lrt -ldl  -lpthread  -march=armv4t  -lm -o#CFLAGS1:=-Wall -g  -liconv   -lpthread   -lrt -ldl -march=armv7 -c
#CFLAGS2:=-Wall -g  -lrt -ldl  -lpthread  -march=armv7  -lm -oSRC = $(wildcard src/*.c) $(wildcard src/lt5189/*.c)
SRO = $(wildcard src/*.o)  $(wildcard ./*.o)
sourmain=uart_main.c
objects =libkjdh.a
USERSRO=$(wildcard lib/tmp/*.o)
objectlib=$(wildcard lib/libkjdh.a)
exes=outarm433
all:
#@echo $(SRC)
#$(CC) $(SRC) $(CFLAGS1)
#@echo $(SRO)
#@cp  $(SRO)  ./lib/tmp
#$(AR) $(objects) $(SRO)
#@cp   $(objects) ./lib
#$(CC) $(sourmain) $(objects) -L. -static -o $(exes)#   $(CC) $(sourmain) $(objectlib) $(CFLAGS2)  $(exes)$(CC) $(sourmain) $(SRC) $(CFLAGS2) $(exes)#@rm -vf $(SRO) $(objects)
lib: $(CC) $(SRC) $(CFLAGS1)@mkdir lib/tmp -p$(AR) $(objects) $(SRO)@mv   $(objects) ./lib
#   @cp   $(SRO)  ./lib/tmp @rm -vf $(SRO)@mv *.o ./lib/tmp
clean:@rm -vf  $(exes)@rm -vf $(objects)@rm -vf $(SRO)@rm -vf -R ./lib/

范例(模版LPC1759-58-56-54-52-51)

CC:=/usr/arm/arm-linaro-arm-linux-gnueabihf-4.7/bin/arm-linux-gnueabihf-gcc#CC:=/usr/arm/arm-none-linux-gnueabi-4.3.3/4.3.3/bin/arm-none-linux-gnueabi-gcc
#CC:=gcc
AR:=ar -rc
#CFLAGS1:=-Wall -g  -liconv   -lpthread   -lrt -ldl -march=armv4t -c
#CFLAGS2:=-Wall -g  -lrt -ldl  -lpthread  -march=armv4t  -lm -oCFLAGS1:=-Wall -g  -liconv   -lpthread   -lrt -ldl -march=armv7 -c
CFLAGS2:=-Wall -g  -lrt -ldl  -lpthread  -march=armv7  -lm -oSRC = $(wildcard src/*.c) $(wildcard src/lt5189/*.c)
SRO = $(wildcard src/*.o)  $(wildcard ./*.o)
sourmain=uart_main.c
objects =libkjdh.a
USERSRO=$(wildcard lib/tmp/*.o)
objectlib=$(wildcard lib/libkjdh.a)
exes=outarm47
all:
#@echo $(SRC)
#$(CC) $(SRC) $(CFLAGS1)
#@echo $(SRO)
#@cp  $(SRO)  ./lib/tmp
#$(AR) $(objects) $(SRO)
#@cp   $(objects) ./lib
#$(CC) $(sourmain) $(objects) -L. -static -o $(exes)#   $(CC) $(sourmain) $(objectlib) $(CFLAGS2)  $(exes)$(CC) $(sourmain) $(SRC) $(CFLAGS2) $(exes)#@rm -vf $(SRO) $(objects)
lib: $(CC) $(SRC) $(CFLAGS1)@mkdir lib/tmp -p$(AR) $(objects) $(SRO)@mv   $(objects) ./lib
#   @cp   $(SRO)  ./lib/tmp @rm -vf $(SRO)@mv *.o ./lib/tmp
clean:@rm -vf  $(exes)@rm -vf $(objects)@rm -vf $(SRO)@rm -vf -R ./lib/

关于makefile编译gcc程序的写法 简单只看4点就会了 芯片i5,S3C2440,LPC1759-58-56-54-52-51的makefile模版相关推荐

  1. Ubuntu系统下C语言的简单使用及gcc和Makefile编译C程序

    Ubuntu18.04系统用C语言的编程. 一.网络设置 1. 下载 Ubuntu 18.04 2.下载 VMware Workstation 3.安装虚拟机 二.更换apt源 1.查看ubuntu的 ...

  2. 使用gcc以及makefile编译C程序

    文章目录 一. gcc编译C程序 1. ubuntu 18.04下使用gcc编译C程序 2. window10下使用gcc编译C程序 二. win10下使用编译软件编译C程序 三. makefile方 ...

  3. linux gcc 静态编译,GCC 程序编译的静态链接和动态链接

    (给Linux爱好者加星标,提升Linux技能)转自:Mr_Bluyee 在链接阶段中,所有对应于源文件的 .o 文件.'-l' 选项指定的库文件.无法识别的文件名(包括指定的.o目标文件和.a库文件 ...

  4. Makefile万能写法(gcc程序以及arm-linux-gcc程序)-转

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://7071976.blog.51cto.com/7061976/1322211 在l ...

  5. linux gcc生成可执行代码命令,Makefile万能写法(gcc程序以及arm-linux-gcc程序)

    在linux下使用gcc 编译时,Makefile的万能写法 ,每次只需更改要生成的目标文件名称(test)尽可: objs := $(patsubst %c, %o, $(shell ls *.c) ...

  6. C语言程序makefile编译过程

    C语言程序makefile编译过程 2022-0111 blog_010 makefile是一些大型linux下开发的项目经常会用到的编译脚本: 可以将makefile理解为类似shell一样的脚本语 ...

  7. c语言conflicting types,gcc编译C程序出现”error conflicting types for function”编译错误的分析解决...

    今天使用gcc编译C语言程序时出现 "error conflicting types for function" 编译错误,这个错误的原因是什么?如何解决?以下看正文的讲解. 在使 ...

  8. 【嵌入式开发】gcc 学习笔记(一) - 编译C程序 及 编译过程

    一. C程序编译过程 编译过程简介 : C语言的源文件 编译成 可执行文件需要四个步骤, 预处理 (Preprocessing) 扩展宏, 编译 (compilation) 得到汇编语言, 汇编 (a ...

  9. An Introduction to GCC - 2 Compiling a C program (编译 C 程序)

    An Introduction to GCC - 2 Compiling a C program (编译 C 程序) for the GNU Compilers gcc and g++ Brian G ...

最新文章

  1. oracle 11g中密码过期问题
  2. oracle树形语句
  3. 如何制作LINUX的patch文件及如何打patch
  4. 众所周知,YouTube是个学习网站
  5. 【转载】用Snort巧妙检测SQL注入和跨站脚本攻击
  6. stm32正交编码器 原理图_恶劣环境下应用的电感式增量编码器和绝对编码器
  7. OpenCV学习:仿射变换+投射变换+单应性矩阵
  8. 被人推荐频率最高的书Top10
  9. _GUN_SOURCE宏
  10. Leetcode每日一题:203.remove-linked-list-elements(移除链表元素)
  11. 求二叉树的深度(C++)
  12. Android 对应的xml配置值,颜色表
  13. centos7 split 切割文件_CentOS 大文件夹按固定块大小分割打包实验
  14. NIVC-gt;IPR[IPADDR]
  15. Java基本类型与类型转换咋就这么烦?
  16. pmp第六版一到三章笔记
  17. LiveGBS流媒体平台GB/T28181常见问题-海康大华宇视监控设备安防摄像头等设备注册不上来如何检查问题?
  18. python太阳花画法_Python——教你画朵太阳花
  19. Apache Ranger安全区介绍
  20. mybatis自联表三级菜单

热门文章

  1. flash钢琴自动弹奏之Windows Script实现版
  2. python模拟正方教务系统登录
  3. java程序员自我介绍
  4. 深度学习入门-基于Python的理论入门与实现源代码加mnist数据集下载推荐
  5. EMC测试——传导骚扰(传导发射)
  6. 简单实现 iframe 全屏显示
  7. SAP(IDoc) PORT 配置
  8. 用C语言编写的英文单词管理小程序
  9. 智慧建筑 的破题立意心得
  10. CISP-PTE学习笔记综合考试题复现WP