Неопределенные ссылочные ошибки при связывании GLFW на MinGW
Я пытаюсь разработать приложение openGL с GLEW и GLFW для Windows, используя minGW. В текущем каталогеproject/
У меня есть каталогиsrc/
, bin/
, а такжеglfw-3.0.4.bin.WIN64/
, У меня есть файлыtest.cpp
, glew.h
, glew.c
, а такжеwglew.h
вsrc/
каталог.
Каталог./glfw-3.0.4.bin.WIN64/include/
содержитGLFW/glfw3.h
заголовочный файл
Каталог./glfw-3.0.4.bin.WIN64/lib-mingw/
содержитglfw3.dll
, glfw3dll.a
, а такжеlibglfw3.a
.
Мой основной файл,test.cpp
содержит,
#include "glew.h"
#include "GLFW/glfw3.h"
#include <stdio.h>
int main(int argc, char** argv) {
printf("Hello, World!\n");
glewInit();
glfwInit();
}
Я собираю программу изproject/
каталог с помощью (разделить на две строки для удобства чтения)
gcc -DGLEW_STATIC -DGLFW_DLL -o ./bin/test ./src/*.cpp ./src/glew.c
-I ./glfw-3.0.4.bin.WIN64/include/ -L ./glfw-3.0.4.bin.WIN64/lib-mingw/ -lglfw3 -lopengl32
и я получаю следующую ошибку:
undefined reference to `_imp_glfwInit'
Я думаю, что проблема связана со мной, неправильно связывающим библиотеку GLFW. Из того, что я понимаю, в том числе вариант компилятора-lglfw3
скажет gcc ссылку./glfw-3.0.4.bin.WIN64/lib-mingw/glfw3.dll
, который содержит определение дляglfwInit()
.
Я посмотрел на решения других проблем, похожих на мою, и они предлагают такие вещи, как копирование файла dll в каталоги исходных / двоичных файлов и изменение порядка параметров -l, но ни одна из них, похоже, не решила проблему для меня.