gpt4 book ai didi

c++ - 仅编译1个cpp文件时出现问题: “make: *** No rule to target '所需的 'executable' build/main.o。停止。”

转载 作者:行者123 更新时间:2023-12-02 10:21:36 25 4
gpt4 key购买 nike

我正在编写我能想到的最基本的makefile,只需编译一个main.cpp。我尝试了阅读类似问题后能找到的所有建议,但仍然无法查明问题所在。常见的错误是使用空格而不是制表符,我也对此进行了检查。

整个项目的布局如下:

/bin
/build
/src
|-----main.cpp
/Makefile

main.cpp仅显示“hello world”。

这是Makefile包含的内容:
CXX = g++
WARNINGS = -Wall
OBJ = -c
OUTPUT = -o
BIN = bin
BUILD = build
SOURCE = src

executable:${BUILD}/main.o
${CXX} ${WARNINGS} ${OUTPUT} ${BIN}/program ${BUILD}/main.o
#c++ -wall -o bin/program src/main.o

main.o: ${SOURCE}/main.cpp
${CXX} ${WARNINGS} ${OBJ} ${OUTPUT} ${BUILD}/main.o ${SOURCE}/main.cpp

如您所见,其中包含构建main.o的说明!如果我不使用makefile变量并简单地编写命令(注释行),则它可以工作。

没有丢失的文件。这证明main.cpp存在
enter image description here

最佳答案

解决方法:
将main.o更改为$ {BUILD} /main.o,然后使make命令可以将其关联

CXX = g++
WARNINGS = -Wall
OBJ = -c
OUTPUT = -o
BIN = bin
BUILD = build
SOURCE = src

executable:${BUILD}/main.o
${CXX} ${WARNINGS} ${OUTPUT} ${BIN}/program ${BUILD}/main.o

${BUILD}/main.o: ${SOURCE}/main.cpp #<------ watch this line
${CXX} ${WARNINGS} ${OBJ} ${OUTPUT} ${BUILD}/main.o ${SOURCE}/main.cpp

关于c++ - 仅编译1个cpp文件时出现问题: “make: *** No rule to target '所需的 'executable' build/main.o。停止。”,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59911739/

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