Ошибка включения файлов GLFW

Я пытаюсь создать проект с использованием GLFW3 при компиляции mingw для Windows и получаю следующую ошибку:

C:\Users\jgelderl\Documents\Test>mingw32-make
g++ -c  Main.cpp
Main.cpp:6:24: fatal error: GLFW/glfw3.h: No such file or directory
 #include <GLFW/glfw3.h>

Вот makefile, который я использую:

CC = g++
OUT_EXE = Main.exe
OUT_EXE_TEST = Test.exe
LINK_FLAGS = -L"C:\Program Files\Microsoft SDKs\Windows\v6.0A\Lib" -lWinMM -L"C:\glfw-3.0.4.bin.WIN32\lib-mingw" -lglfw3 -lopengl32 -lglu32 -lgdi32
INC_ DIRS = -I"C:\glfw-3.0.4.bin.WIN32\include"
CFLAGS = -c 

all: Main.exe

Main.exe: Main.o game.o Block.o Board.o
        $(CC) -o Main.exe $(INC_DIRS) Main.o game.o Block.o Board.o $(LINK_FLAGS)

test: Test.exe

Test.exe: Test.o game.o Block.o Board.o
        $(CC) -o Test.exe Test.o game.o Block.o Board.o $(LINK_FLAGS)

Main.o: Main.cpp
        $(CC) $(CFLAGS) Main.cpp

game.o: game.cpp game.h
        $(CC) $(CFLAGS) game.cpp

Block.o: Block.cpp Block.h
        $(CC) $(CFLAGS) Block.cpp

Board.o: Board.cpp Board.h
        $(CC) $(CFLAGS) Board.cpp

Test.o: Test.cpp greatest.h
        $(CC) $(CFLAGS) Test.cpp

clean:
        rm Main.exe Test.exe *.o

rebuild: clean all

У меня нет большого опыта работы с make-файлами, но я пытаюсь использовать его, чтобы узнать больше о процессе сборки. Я также поместил библиотеку GLFW и включил файлы в каталоги mingw, но это тоже не помогло. Я делаю что-то не так в моем make-файле или, может быть, я неправильно настроил что-то еще?


person jgelderloos    schedule 27.10.2014    source источник
comment
Это не ошибка make. Это ошибка от g++, говорящая вам, что он не может найти заголовочный файл с таким именем (ни в одном из местоположений, которые он ищет по умолчанию, ни в любом, которое вы добавили с помощью -I). Где этот файл на самом деле живет?   -  person Etan Reisner    schedule 27.10.2014
comment
@EtanReisner glfw3.h находится в C:\glfw-3.0.4.bin.WIN32\include\GLFW, что я и использую в своей команде -I   -  person jgelderloos    schedule 27.10.2014
comment
Заметили, что выполняется команда компиляции? g++ -c Main.cpp Ваш флаг -I там не используется. Вам нужно -I флагов для компиляции и -L флагов для линковки.   -  person Etan Reisner    schedule 27.10.2014
comment
Поэтому я добавил свои включения в CFLAGS, и теперь это работает. Я знаю, что пробовал это раньше, но тогда у меня, должно быть, было что-то еще не так. Спасибо за помощь.   -  person jgelderloos    schedule 27.10.2014


Ответы (1)


Проблема заключалась в том, что каталог include не использовался для сборки каждого объекта.

Оригинал:

CFLAGS = -c

Новый:

CFLAGS = -c $(INC_DIRS)

Это изменение решило проблему.

person jgelderloos    schedule 11.11.2014