gpt4 book ai didi

c - Makefile,clang OK,gcc错误

转载 作者:太空宇宙 更新时间:2023-11-04 03:47:05 24 4
gpt4 key购买 nike

当我评论/取消注释 clang/gcc 时,我有与 clang 一起工作而与 gcc 一起失败的 makefile ... 我不知道为什么。

#CC=gcc
#CFLAGS=-I -std=gnu99 -Wall -Wextra -Werror -pedantic

CC=clang
CFLAGS=-I -std=gnu99 -Wall -Wextra -Werror -pedantic

LIBS=-lpthread -lrt

SRC=rivercrossing.c functions.c
OBJ=$(SRC:.c=.o)
DEPS=rivercrossing.h

%.o: %.c $(DEPS)
$(CC) -c -o $@ $<

rivercrossing: $(OBJ)
$(CC) $^ $(CFLAGS) $(LIBS) -o $@

.PHONY: clean
clean:
rm -f *.o rivercrossing

使用 gcc 我有以下错误:

error: ‘for’ loop initial declarations are only allowed in C99 mode

error: ISO C90 forbids mixed declarations and code [-Werror=pedantic]
int stat = 0;
^

error: C++ style comments are not allowed in ISO C90 [-Werror]

*.o 文件也没有被删除,当我查看文件夹时它们仍然存在。为什么?谢谢你的帮助。

最佳答案

您必须使用 C99 模式而不是 gnu99 模式,或者您可以在 for 循环之外声明变量。

有一个启用 C99 模式的编译器开关,除其他外,它允许在 for 循环内声明变量。要打开它,请使用编译器开关 -std=c99

关于c - Makefile,clang OK,gcc错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23423258/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com