Makefile编译错误不适用-std = c99

时间:2014-05-15 12:49:17

标签: c makefile c99

我已经获得了所谓的工作代码,我只需要修改,但是我实际上无法使用下面提供的makefile编译程序。

INCLUDE_PATH = -I/usr/X11/include -I$(BLDR_FREEGLUT_INCLUDE_PATH)
LIBRARY_PATH = -L/usr/X11/lib -L$(BLDR_FREEGLUT_LIB_PATH)
CCFLAGS = -std=c99 
LDFLAGS = -lGL -lGLU -lglut -lX11 -lpthread

GCC = gcc
APP = nbody

all: $(APP)
    @echo Make done

clean:
    @rm -f *.o $(APP)

nbody: nbody.c
    $(GCC) nbody.c -o nbody $(INCLUDE_PATH) $(CCFLAGS) $(LIBRARY_PATH) $(LDFLAGS)

make命令的第一个输出行在下面给出。

gcc nbody.c -o nbody -I/usr/X11/include -I -std=c99  -L/usr/X11/lib -L -lGL -lGLU -lglut -lX11 -lpthread

然而,下面是错误,说某些事情只是“允许在C99模式下”,我不明白,因为c99的标志似乎是正确指定的。要解决此问题,我尝试更改$(CCFLAGS)值的位置,但没有成功。

如何修改此makefile以使程序符合要求?

1 个答案:

答案 0 :(得分:1)

-I -std=c99表示编译器添加名为-std=c99的目录以包含搜索路径。这不是你想要的。根据呈现的片段判断,$(BLDR_FREEGLUT_INCLUDE_PATH)是空的 - 虽然它不应该是。修正变量的价值,事情会顺利进行。