我有这个makefile

CFLAGS=-g
LDFLAGS=-g

exec: fluxo.o validar.o ficheiroParaMemoria.o

fluxo.o: fluxo.c

validar.o: validar.c validar.h

ficheiroParaMemoria.o: ficheiroParaMemoria.c ficheiroParaMemoria.h

clean:
    rm -f run *.o


它创建了3个.o文件,但没有创建可执行文件。 Fluxo.c具有主要功能。
不可见项仅显示在每行的末尾,并且在clean命令之前有一个Tabe

最佳答案

抱歉,我不了解您的Makefile,但这是我项目中的Works Makefile:

CC = gcc
FLAGS = -std=c99
DEST_PATH = "./bin/main"


all: clean main.o Smtp.o Base64.o
    $(CC) build/*.o -o $(DEST_PATH) $(FLAGS)

main.o: src/main.cpp src/Service/Smtp.hpp
    $(CC) src/main.cpp -c -o build/main.o $(FLAGS)

Smtp.o: src/Service/Smtp.cpp src/Service/Smtp.hpp
    $(CC) src/Service/Smtp.cpp -c -o build/Smtp.o $(FLAGS)

Base64.o: src/Service/Base64.cpp src/Service/Base64.hpp
    $(CC) src/Service/Base64.cpp -c -o build/Base64.o $(FLAGS)

clean:
    rm -f build/*


-c标志创建目标文件(.o)。
在您的示例中,除了rm外,我没有看到任何实际命令。
希望对您有所帮助。

关于c - Makefile不会创建最终可执行文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54948395/

10-11 22:11
查看更多