all: matrices.c calculations.o
    gcc -std=c99 matrices.c calculations.o -o -lm PROGRAM2_EXE

lib: matrices.h calculations.c
    gcc -c -std=c99 calculations.c -o calculations.o

clean:
    rm matrices.o calculations.o PROGRAM2_EXE

这是我的项目生成文件。在我的矩阵和计算中,有多个for循环。它给我的错误是error:“for”循环初始声明只允许在c99模式下使用,但我的文件中有-std=c99。我的问题是
如何修复生成文件以使用for循环运行?

最佳答案

此操作:

gcc -std=c99 matrices.c calculations.o -o -lm PROGRAM2_EXE

告诉gcc生成一个名为-lm的可执行文件,这可能不是您想要的。
由于您没有生成connections.o的规则,make将使用其默认规则从connections.c构建它,这可能类似于(来自gmake):
%.o: %.c
        $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<

因为您没有在-std=c99CFGLAGS中设置CPPFLAGS,所以不会使用它。

关于c - Makefile -std = c99错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23688746/

10-14 09:13