Не удается найти исходный файл, работает, если cc запускается напрямую - PullRequest
0 голосов
/ 25 мая 2019

У меня есть проблема, из-за которой 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

suceeds

вот мой Makefile

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

Ответы [ 2 ]

1 голос
/ 25 мая 2019

Нам потребуется просмотреть 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)

Чтобы включить любые дополнительные написанные файлы c, просто добавьте имя файла в конец источников. Убедитесь, что используете пробелы вместо пробелов. Посмотрите эту справочную страницу Linux для получения дополнительной информации make (1p) .

0 голосов
/ 25 мая 2019

выясняется, что наличие в каталоге имени 'obj' было виновато

...