我正在尝试使用最小的opengl glfw编译一个简单的教程程序。我的问题似乎是glfw库固执地拒绝动态链接。相关的make命令是:
"C:\Program Files\mingw-w64\mingw64\bin\g++" -Wall -m64 -D GLFW_DLL -l opengl32 -l glfw3 main.o -o triangle <br />
main.o文件是从c ++文件main.cpp编译的:
"C:\Program Files\mingw-w64\mingw64\bin\g++" -c -Wall -m64 -D GLFW_DLL main.cpp -o main.o
对代码内部的glfw函数的每次引用都会导致对相关实现函数的未定义引用(例如,__ imp_glfwInit用于glfwInit =&gt;未定义引用'__imp_glfwInit')
使用glfw 3.0.4通过命令行使用make构建系统是mingw-w64 [windows]。 glfw lib是64位,最新的稳定版本可用。它由文件组成:
答案 0 :(得分:0)
看来提供的文件不能与mingw-w64一起使用,并且只与64位mingw兼容。 因此,剩下的唯一选择是链接到dll(感谢大狼:https://stackoverflow.com/a/17734362/2396393)。因此,编译到对象的代码变为:
"C:\Program Files\mingw-w64\mingw64\bin\g++" -Wall -m64 -D GLFW_DLL main.o -o triangle ./lib/glfw3.dll -l opengl32
dll glfw3位于lib文件夹中