我用c语言写了一个小游戏,使用Allegro5库我需要在一个通用的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操作系统上运行(所以不必每次都安装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电脑上开发Cygwin环境,我从here下载了我的“allegro5”文件夹。
我更喜欢用makefile来解决这个问题。

最佳答案

是不是应该包括在内??
(大写i,不是小写L)

关于c - 用于编译Allegro5 C程序的Makefile,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32444062/

10-09 17:52