gpt4 book ai didi

c++ - 每次制作都会创建预编译头?

转载 作者:搜寻专家 更新时间:2023-10-31 00:02:49 25 4
gpt4 key购买 nike

我有一个非常简单的 makefile,它基本上执行以下操作:

# Pre-compiled header
CORE_PCH_FILENAME =Core.h

CORE_PCH:
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)

#Objects
obj/%.o: CORE_PCH %.cpp obj/%.d
@mkdir -p obj
$(CXX) $(CXX_CFLAGS) -c $*.cpp -o $@

#Dependencies
obj/%.d: %.cpp
@mkdir -p obj
$(CXX) $(CXX_CFLAGS) -MM -MT obj/$*.o -MF $@ $<

我的问题是,我第一次创建时,Core.h.gch 被创建并且项目被构建。没关系。

但是,即使什么都不改变,再次运行 make 也会重新创建 Core.h.gch 并重新编译所有内容。

如果我没有预编译的头文件,make 会正常运行(如果没有任何更改,则不会重建任何内容,如果进行了修改,则仅重建必要的内容)

但我真的很想拥有那个预编译的头文件,有什么地方我做得不对吗!?

编辑:

建议如下:

# Pre-compiled header
$(CORE_PCH_FILENAME) =Core.h
CORE_PCH: $(CORE_PCH_FILENAME)
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)

但它仍然每次都会被创建 :(

最佳答案

问题是您没有按名称引用 gch,并且没有字面意义上的名为 CORE_PCH 的文件。尝试:

CORE_PCH_FILENAME=Core.h
CORE_PCH=$(CORE_PCH_FILENAME).gch

$(CORE_PCH):
$(CXX) $(CXX_CFLAGS) -x c++-header $(CORE_PCH_FILENAME)

关于c++ - 每次制作都会创建预编译头?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7365448/

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