我有一个基本的C OpenGL编程的Makefile设置,但运行时有2个文件传递给clang,不应该存在,我不知道为什么。问题发生后,我添加了高兴和glfw的项目。
代码:
CC = clang
`CCFLAGS = -lGL -lglfw -std=c++20 -v -Wall -Wextra -Wepedantic -g -lgdi32
LDFLAGS = lib/glad/src/glad.o lib/glfw/src/libglfw3.a -lgdi32 -lm
SRC = $(wildcard src/*.c)
OBJ = $(SRC:.c=.o)
BIN = bin
all: libs build
libs:
cd lib/glad && $(CC) -o src/glad.o -Iinclude -c src/glad.c
cd lib/glfw && cmake . -G 'Unix Makefiles' && make
build: $(OBJ)
$(CC) -o $(BIN)/build $^ $(LDFLAGS)
%.o %.c:
$(CC) -o $@ -c $< $(CCFLAGS)
run:
./bin/build.exe
错误:叮当声:错误:没有这样的文件或目录:"所有. o"克朗:错误:没有这样的文件或目录:"libs"叮当作响:错误:没有这样的文件或目录:"构建"
1条答案
按热度按时间jm81lzqq1#
提问时,请包括您键入的命令、命令make printed,以及至少前几行和最后几行错误消息(格式正确,为代码块)。
我假设额外的引号字符是剪切和粘贴中的错误;请花点时间在你发布问题之后回顾一下(或者更好的是,在发布之前使用预览)。你只写了一次,但是成千上万的人会花时间阅读它。请足够体贴,让他们容易阅读。
你的问题是:
您想说“使用此规则从
.c
文件构建.o
文件”,但%.o %.c:
说的是“使用此规则从无到有地构建.o
和.c
文件”。您需要: