gpt4 book ai didi

c - 生成编译 gcc 的文件并将对象放入单独的文件夹中

转载 作者:行者123 更新时间:2023-11-30 15:07:35 24 4
gpt4 key购买 nike

我正在尝试创建一个可以相应工作的 make 文件

OBJECT_DIRECTORY := out/obj
C_SOURCE_FILES = (Path and files fetched from different make files)
CFLAGS += -mcpu=$(CPU) -mthumb -mabi=aapcs -mfloat-abi=soft
CFLAGS += -Wall -Werror
CFLAGS += -D$(DEVICE) -std=gnu99

$(OBJECT_DIRECTORY)/%.o: %.c
$(CC) $(C_SOURCE_FILES) $(CFLAGS) -c -o $@ $<

我验证了 C_SOURCE_FILES 变量实际上包含 c 源文件。这是因为我可以使用它进行编译:

$(OBJECT_DIRECTORY)/%.o: 
$(CC) $(C_SOURCE_FILES) $(CFLAGS) -c

问题在于目标文件没有放置在我需要它们进行链接的文件夹中。

顺便说一句,我正在从 Eclipse C/C++ IDE 执行 make 文件

如果有人能帮助我解决这个问题,我会非常高兴。

最佳答案

试试这个:

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

此处不需要 C_SOURCE_FILES 变量。此配方将为每个名为 {file}.c 的文件创建 out/obj/{file}.o。

您不显示它,但从对象文件创建的可执行文件的依赖项列表必须显式调用每个对象文件。

关于c - 生成编译 gcc 的文件并将对象放入单独的文件夹中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38148278/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com