Почему после компиляции нет .o? - PullRequest
1 голос
/ 30 марта 2019

После каждого изменения моего кода мне приходится компилировать всю программу, потому что .o файлы не сохраняются, что не так с makefile?

CXX=g++
CXXFLAGS=-W -Wall -ansi -pedantic
LDFLAGS=
EXEC=test

SRC= $(wildcard *.cpp)
OBJ= $(SRC:.c=.o)

all: $(EXEC)
    @echo "$(CYAN)\n\tProgram successfully compiled!\n\a$(BLACK)"

$(EXEC): $(OBJ)
    $(CXX) -o $@ $^ $(LDFLAGS)

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

1 Ответ

0 голосов
/ 30 марта 2019

Спасибо Джону, чтобы понять это!

Проблема в этой строке:

OBJ = $ (SRC: .c = .o)

Это должно быть так:

OBJ = $ (SRC: .cpp = .o)

Действительно, я скопировал структуру из make-файла для компиляции программ на C, поэтому мне нужно изменить расширение исходных файлов!

...