gpt4 book ai didi

c - 如何在 Makefile 中创建对 .o 文件的引用

转载 作者:太空宇宙 更新时间:2023-11-03 23:23:24 24 4
gpt4 key购买 nike

我得到了两个 .o 文件和相应的 .h 文件用于分配,但我不知道如何让编译器使用 .o 文件。这是我目前使用的 Makefile:

    TARGET = prog
LIBS = -lm
CC = gcc
CFLAGS = -g -Wall

.PHONY: default all clean

default: $(TARGET)
all: default

OBJECTS = $(patsubst %.c, %.o, $(wildcard *.c))
HEADERS = $(wildcard *.h)

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

.PRECIOUS: $(TARGET) $(OBJECTS)

$(TARGET): $(OBJECTS)
$(CC) $(OBJECTS) -Wall $(LIBS) -o $@

clean:
-rm -f *.o
-rm -f $(TARGET)

我想我需要在末尾添加 file1.o 和 file2.o,但我不确定这是否正确。我确实在适当的时候在 C 源文件中有 .h 文件,所以我能想到的编译错误的唯一原因是 .o 文件没有用我的代码编译。

最佳答案

为提供的 .o 添加一个定义(例如):

PREBUILT_O = fludger.o ramble.o plexor.o

将目标规则更改为:

$(TARGET): $(OBJECTS) $(PREBUILT_O)
$(CC) $(OBJECTS) $(PREBUILT_O) $(LIBS) -o $@

关于c - 如何在 Makefile 中创建对 .o 文件的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33338028/

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