Erros de referência indefinidos ao vincular GLFW no MinGW
Estou tentando desenvolver um aplicativo openGL com GLEW e GLFW no Windows usando minGW. No diretório atual,project/
Eu tenho os diretóriossrc/
, bin/
eglfw-3.0.4.bin.WIN64/
. Eu tenho os arquivostest.cpp
, glew.h
, glew.c
ewglew.h
nosrc/
diretório.
O diretório./glfw-3.0.4.bin.WIN64/include/
contém oGLFW/glfw3.h
arquivo de cabeçalho.
O diretório./glfw-3.0.4.bin.WIN64/lib-mingw/
contémglfw3.dll
, glfw3dll.a
elibglfw3.a
.
Meu arquivo principaltest.cpp
contém
#include "glew.h"
#include "GLFW/glfw3.h"
#include <stdio.h>
int main(int argc, char** argv) {
printf("Hello, World!\n");
glewInit();
glfwInit();
}
Estou compilando o programa a partir doproject/
diretório executando (dividido em duas linhas para facilitar a leitura)
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
e estou recebendo o seguinte erro:
undefined reference to `_imp_glfwInit'
Eu acho que o problema tem a ver comigo vincular a biblioteca GLFW incorretamente. Pelo que entendi, incluindo a opção do compilador-lglfw3
dirá ao gcc para vincular./glfw-3.0.4.bin.WIN64/lib-mingw/glfw3.dll
, que contém a definição paraglfwInit()
.
Eu olhei para soluções para outros problemas semelhantes aos meus e eles sugerem coisas como copiar o arquivo dll para os diretórios de origem / binários e alterar a ordem das opções -l, mas nenhuma parece resolver o problema para mim.