linux的makefile设置c99 centOS7 error: ‘for’ loop initial declarations are only allowed in C99 mode note: use option -std=c99 or -std=gnu99 to compile your code 解决方法:CFLAGS添加"-std=c99" Makefile 注:这个Makefile不是我写的。是别人的项目里的。———...
对于编译 C、C++ 程序来说,借助 -std 选项即可手动控制 GCC 编译程序时所使用的编译标准。
AI代码解释 CC=gccCFLAGS=-g-O-WallOBJ:=add.o sub.o main.oTOPDIR:=$(PWD)OBJDIR:=$(TOPDIR)/objBINDIR:=$(TOPDIR)/binBIN:=mainSUBDIR:=add sub main objOBJHEAD:=$(TOPDIR)/add/add.h$(TOPDIR)/sub/sub.hOBJLINK:=--std=c99exportCCTOPDIROBJDIRBINDIRBINOBJLINKOBJall:CHECKDIR$(...
sub.c: In function ‘sub’:sub.c:14:2: error: ‘for’ loop initial declarations are only allowed in C99 mode sub.c:14:2: note: use option -std=c99 or -std=gnu99 to compile your code make: *** [sub.o] Error 1 但是直接在控制台下输入 gcc -g -std=c99 -c sub.c...
下面是一个简单的示例:hello: hello.c gcc -o hello hello.c变量的使用在Makefile中声明变量可以使得我们的代码更加简洁。CC=gccCFLAGS=-std=c99LDFLAGS=OBJ=main.o utils.oapp: $(OBJ)$(CC) -o app $(OBJ)$(LDFLAGS)main.o: main.c$(CC)$(CFLAGS) -c main.cutils.o: utils.c utils.h$(CC...
如果再次执行make命令,提示程序是最新的,说明没有修改或更新程序,编译程序没有意义。分析Makefile中的代码,将它分为三部分:make、make.c、gcc make.c -o make -std=c99。make依赖于make.c产生,gcc make.c -o make -std=c99是make依赖于make.c的方法。理解依赖关系和依赖方法,可以类比为生活...
CFLAGS=-std=c99 LDFLAGS= OBJ=main.o utils.o app:$(OBJ) $(CC)-o app$(OBJ)$(LDFLAGS) main.o: main.c $(CC)$(CFLAGS)-c main.c utils.o: utils.c utils.h $(CC)$(CFLAGS)-c utils.c 通用规则和模式匹配 模式规则可以减少我们重复相同命令的工作量。
CFLAGS=-std=c99 LDFLAGS= OBJ=main.o utils.o app: $(OBJ) $(CC) -o app $(OBJ) $(LDFLAGS) main.o: main.c $(CC) $(CFLAGS) -c main.c utils.o: utils.c utils.h $(CC) $(CFLAGS) -c utils.c 通用规则和模式匹配 模式规则可以减少我们重复相同命令的工作量。
gcctest.c-otest-d-g-std=c99//将test.c文件重定向到test-d程序 -g选项是以debug的方式//-std=c99以c99的方式编译 效果: 在运行的结果上并没有任何的区别,那么我们接下来看关键点 对比: readelf-Stest-d|grepdebug//查看调试信息 效果: 总结: ...
# -std=c99/-std=iso9899:1999 # -std=c11/-std=iso9899:2011 # -std=gnu90 或一下具有GNU特性的语言标准 # -std=gnu99 # -std=gnu11 CSTD := -std=c11 # 参数名称:CPP语言标准 # 参数说明:该选项用于设定编译时执行的CPP语言标准,提供的选项分别为 ...