Incluir arquivo de cabeçalho em diretório diferente no c ++
Eu aprendi c ++ e encontrei a seguinte pergunta: Eu tenho uma estrutura de diretórios como:
- current directory
- Makefile
- include
- header.h
- src
- main.cpp
meu header.h:
#include <iostream>
using namespace std;
void print_hello();
meu main.cpp:
#include "header.h"
int main(int argc, char const *argv[])
{
print_hello();
return 0;
}
void print_hello()
{
cout<<"hello world"<<endl;
}
meu Makefile:
CC = g++
OBJ = main.o
HEADER = include/header.h
CFLAGS = -c -Wall
hello: $(OBJ)
$(CC) $(OBJ) -o $@
main.o: src/main.cpp $(HEADER)
$(CC) $(CFLAGS) CC = g++
OBJ = main.o
HEADER = include/header.h
CFLAGS = -c -Wall
hello: $(OBJ)
$(CC) $(OBJ) -o $@
main.o: src/main.cpp $(HEADER)
$(CC) $(CFLAGS) $< -o $@
clean:
rm -rf *o hello
lt; -o $@
clean:
rm -rf *o hello
E a saída do make é:
g ++ -c -Wall src / main.cpp -o main.o src / main.cpp: 1: 20: erro fatal: header.h: Nenhuma compilação de arquivo ou diretório foi encerrada. Makefile: 10: receita para o destino 'main.o' falhou no make: *** [main.o] Erro 1
Que erros eu cometi aqui. É frustrante. Realmente aprecio qualquer conselho!