我使用Allegro 5库在c中写了一个小游戏。我需要在通用的Linux环境中编译并运行它,所以我尝试使用makefile来轻松编译它。
CFLAGS = -Wall -c
EFLAGS =
EOPTION = `pkg-config --cflags --libs allegro-5.0 allegro_primitives-5.0 allegro_font-5.0 allegro_audio-5.0 allegro_ttf-5.0 allegro_image-5.0 allegro_acodec-5.0` -lm
OBJFOLD = objectfiles
SOURCE = #all my source codes.
OBJECT = #all my object files.
EXC = Foo
all: $(SOURCE) $(EXC)
$(EXC): $(OBJECT)
gcc $(EFLAGS) -o $(EXC) $(OBJECT) $(EOPTION)
$(OBJFOLD)/%.o: %.c
gcc $(CFLAGS) $< -o $@
$(OBJFOLD)/%.o: libraries/%.c
gcc $(CFLAGS) $< -o $@
它在我安装了Allegro 5库的计算机上工作正常,但是我需要它在运行make文件的Linux Os上工作(所以每次都不安装Allegro 5)。我的项目文件夹的结构是:
- Project
-allegro5
-bin
-fonts
-images
-include
-libraries
-objectfiles
-sounds
所以,我添加到$(OBJFOLD)/%。o target的指令选项'-Iallegro5 / include'但是当我尝试运行makefile时,它返回:
$ make -f Makefile
gcc -Wall -c Main.c -o objectfiles/Main.o -Iallegro5/include
In file included from allegro5/include/allegro5/internal/alconfig.h:35:0,
from allegro5/include/allegro5/base.h:50,
from allegro5/include/allegro5/allegro.h:26,
from Main.c:3:
allegro5/include/allegro5/platform/almngw32.h:23:20: fatal error: direct.h: No such file or directory
#include "allegro5/platform/alplatf.h"
^
compilation terminated.
我认为我的方式完全错误,有人可以帮助我吗? 我现在在Windows PC上处理Cygwin环境,然后从here下载我的“allegro5”文件夹。 我更喜欢使用makefile解决它。
答案 0 :(得分:0)
不应该是-Iallegro5 / include ?? (资本i,不小L)