gpt4 book ai didi

c++ - 使用 makefile 默认只编译对象

转载 作者:行者123 更新时间:2023-11-28 06:19:23 33 4
gpt4 key购买 nike

我正在尝试编写一个 makefile 来编译并仅从源代码生成目标文件。到目前为止我有这个:

CC=g++
CFLAGS=-c -Wall -std=c++11
SOURCES=$(wildcard *.h)
OBJECTS=$(SOURCES:.cpp=.o)

all: $(OBJECTS)

$(OBJECTS):
$(CC) $(CFLAGS) $< -o $@

当我调用它时,它会打印:

make: Nothing to be done for `all'.

显然我犯了一个错误,但我不知道是哪一个,因为我在 GNU make documentation page 中看到一个非常相似的例子。

如有任何帮助,我们将不胜感激。

最佳答案

将:SOURCES=$(wildcard *.h) 替换为 SOURCES=$(wildcard *.cpp)

和:

$(OBJECTS):
$(CC) $(CFLAGS) $< -o $@

与:

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

这意味着每个 {file}.o 都依赖于 {file}.cpp 的存在。

关于c++ - 使用 makefile 默认只编译对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29577438/

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