我已经获得了所谓的工作代码,我只需要修改,但是我实际上无法使用下面提供的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以使程序符合要求?
答案 0 :(得分:1)
-I -std=c99
表示编译器添加名为-std=c99
的目录以包含搜索路径。这不是你想要的。根据呈现的片段判断,$(BLDR_FREEGLUT_INCLUDE_PATH)
是空的 - 虽然它不应该是。修正变量的价值,事情会顺利进行。