【问题标题】:Makefile output into subfolderMakefile 输出到子文件夹
【发布时间】:2018-01-21 02:39:41
【问题描述】:

我正在为 GameBoy 游戏设置项目,我希望将文件输出到项目的子文件夹而不是根目录。在文件名前面添加文件夹名似乎不起作用,我在网上找到的任何建议也不起作用。

这是我目前拥有的 makefile。

CC  = ../../../bin/lcc -Wa-l -Wl-m -DUSE_SFR_FOR_REG


BINS    = new.gb

all:    $(BINS)

%.o:    %.c
    $(CC) -c -o $@ $<

%.s:    %.c
    $(CC) -S -o $@ $<

%.o:    %.s
    $(CC) -c -o $@ $<

%.gb:   %.o
    $(CC) -o $@ $<

clean:
    rm -f *.o *.lst *.map *.gb

# Link file, and write 0x80 at position 0x143 in header
new.gb: new.o
    $(CC) -Wl-yp0x143=0x80 -o new.gb new.o

谢谢。

【问题讨论】:

  • This one 可能不是完全相同的副本,但它似乎应该包含您需要的信息。

标签: c makefile gbdk


【解决方案1】:

由于你只有一个源文件,你不需要单独编译.o文件,只需重用make的一次性规则

CC       := ../../../bin/lcc
CPPFLAGS := -DUSE_SFR_FOR_REG
CFLAGS   := -Wa-l
LDFLAGS  := -Wl-m -Wl-yp0x143=0x80

subdir/new.gb: new.c
    $(LINK.c) $^ $(LDLIBS) -o $@

.PHONY: clean
clean:
    $(RM) $(addprefix subdir/new,.lst .map .gb)

【讨论】:

  • 我似乎在 $(LINK.c) $^ $(LDLIBS) -o $@ 上遇到了这个问题,上面写着 *** 缺少分隔符。停止。有什么我需要添加的吗?还是应该工作?
  • 没关系,明白了,这是标签的问题。谢谢!
  • 当然,一旦你有多个文件要编译,这将不会那么好。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-11
相关资源
最近更新 更多