gpt4 book ai didi

linux - 将一个目录下的cpp文件编译到另一个目录下

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

尝试将 P18298_ca.sub 文件夹中的所有 .cc 文件编译为 P18298_ca.cmp 中的 .exe 文件。我使用 make 命令从包含源目录和目标目录的目录进行编译。使错误读取:

make:*没有规则来创建目标P18298_ca.cmp/00a5bffb6a4792d7bcaed90ff6d3ca88-WA.exe',由main.exe'需要。停止。

这是我使用的 makefile 代码

    CPP_FILES := $(wildcard P18298_ca.sub/*.cc)
OBJ_FILES := $(patsubst P18298_ca.sub/%.cc,P18298_ca.cmp/%.exe,$(CPP_FILES))
LD_FLAGS := ...
CC_FLAGS := ...

main.exe: $(OBJ_FILES)
g++ $(LD_FLAGS) -o $@ $^

obj/%.exe: src/%.cc
g++ $(CC_FLAGS) -c -o $@ $<

最佳答案

二进制文件是从 *.obj 文件构建的,而不是从 *.exe 文件构建的。另外,宏中的目录和默认规则必须相同。将 Makefile 中的这些行更改为

OBJ_FILES := $(patsubst P18298_ca.sub/%.cc,P18298_ca.cmp/%.obj,$(CPP_FILES))

P18298_ca.cmp/%.obj: P18298_ca.sub/%.cc
g++ $(CC_FLAGS) -c -o $@ $<

关于linux - 将一个目录下的cpp文件编译到另一个目录下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14957040/

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