【发布时间】:2020-03-14 06:25:18
【问题描述】:
谁能帮忙解决这个问题。 当我尝试让我的 makefile 执行此操作时。
`echo ./src/main.c
./src/main.c
gcc -c -g -Iinclude src/main.c
gcc Makefile.o -o Makefile
clang: error: no such file or directory: 'Makefile.o'
clang: error: no input files
make: *** [Makefile] Error 1`
实际上,我的目录中只有: 一个名为:Makefile 的生成文件。 三个名为 :doc 的空文件夹包括和 obj。 还有一个名为 src 的文件夹,里面有 main.c。
我的 Makefile 看起来是:
CC := gcc
HEADERS := -Iinclude
C_SOURCES := $(wildcard ./src/*.c)
O_SOURCES := ./obj
OBJ := $(notdir $(C_SOURCES:.c=.o))
C_FLAGS := -Wall -Wextra -Werror
B_FLAGS := -c -g
main:$(OBJ)
$(CC) $(C_FLAGS) -o $@ $^
mv $^ $(O_SOURCES)
mkdir -p bin
mv main ./bin
%.o:$(C_SOURCES)
echo $(C_SOURCES)
$(CC) $(B_FLAGS) $(HEADERS) $^
depend:
makedepend $(HEADERS) $(C_SOURCES)
tar:
tar -Jcf b-GoL-$(TAG).tar.xz Makefile $(C_SOURCES) $(HEADERS)
clean :
@clear
rm -rf bin $(O_SOURCES)/$(OBJ) b-GoL-$(TAG).tar.xz
感谢所有愿意在我的旅程中帮助我的人
【问题讨论】:
-
只是一个疯狂的猜测 - 在先决条件之前的冒号后添加一个空格:
%.o: $(C_SOURCES)(main目标相同) -
还是不行,谢谢
-
添加
echo $^怎么样? -
我不复制。你们是如何启动 make 的?
-
我只写 make 就是这样
标签: c macos makefile compilation