我正在尝试使用minGW在Windows上使用GLEW和GLFW开发OpenGL应用程序。在当前目录
目录
目录
我的主文件
我认为问题与我错误地链接GLFW库有关。据我所知,包含编译器选项
我已经查看了其他类似问题的解决方案,并建议执行一些操作,例如将dll文件复制到源/二进制目录并更改-l选项的顺序,但对我来说都没有解决问题。
project/
中,我有src/
、bin/
和glfw-3.0.4.bin.WIN64/
这些目录。在src/
目录下有test.cpp
、glew.h
、glew.c
和wglew.h
这些文件。目录
./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选项的顺序,但对我来说都没有解决问题。