Я пытаюсь разработать приложение 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, но ни один из них, похоже, не решил проблему для меня.
-Ipath
и-Lpath
надо писать без пробела. - person keltar   schedule 25.03.2014