查找源文件失败,如果直接运行cc则有效

查找源文件失败,如果直接运行cc则有效,c,makefile,freebsd,C,Makefile,Freebsd,我遇到一个问题,即即使直接成功运行命令,make也会失败: $ make cc -o ./bin/cams cams.c cc: error: no such file or directory: 'cams.c' cc: error: no input files *** Error code 1 Stop. make: stopped in /usr/psrc/cams 即使 cc -o ./bin/cams cams.c 成功 这是我的Makefile SHELL = /usr/lo

我遇到一个问题,即即使直接成功运行命令,make也会失败:

$ make
cc -o ./bin/cams cams.c
cc: error: no such file or directory: 'cams.c'
cc: error: no input files
*** Error code 1

Stop.
make: stopped in /usr/psrc/cams
即使

cc -o ./bin/cams cams.c
成功

这是我的Makefile

SHELL = /usr/local/bin/bash
cams: 
    cc -o ./bin/cams cams.c
clean:
    rm ./bin/cams

我们需要查看您正在使用的Makefile,以便能够进行故障排除。假设您只有一个文件,并且不需要指定任何其他包含位置,那么下面的Makefile应该可以工作

CC=cc
SOURCES=cams.c
OBJECTS=$(SOURCES:.c=.o)
EXECUTABLE=bin/cams

all: $(EXECUTABLE)

$(EXECUTABLE): $(OBJECTS) 
    $(CC) $(OBJECTS) -o $@

%.o : %.cpp
    $(CC) -c $< -o $@

clean:
    rm -fv $(OBJECTS) $(EXECUTABLE)
CC=CC
来源=cams.c
对象=$(源:.c=.o)
可执行文件=bin/cams
全部:$(可执行)
$(可执行文件):$(对象)
$(CC)$(对象)-o$@
%.o:%.cpp
$(CC)-c$<-o$@
清洁:
rm-fv$(对象)$(可执行文件)

要包含任何其他编写的c文件,只需将文件名附加到源代码的末尾。确保使用制表符而不是空格。查看此Linux手册页了解更多信息。

结果表明,目录名“obj”的存在是罪魁祸首。

您不认为我们需要查看Makefile来回答这个问题吗?