我已经使用glfw3编写了一个简单的程序,我相信我已经链接了适用的(静态)库并正确地包含了头文件。无法编译C++(使用GLFW)
下面是我的命令行输出:
23:20:58 **** Incremental Build of configuration Debug for project Void ****
Info: Internal Builder is used for build
g++ -L../lib -static -o Void Main.o -lglfw3 -lgdi32 -lglew32 -lopengl32
Main.o: In function `ZN4MainC2Ev':
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:15: undefined reference to `glfwInit'
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:16: undefined reference to `glfwCreateWindow'
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:18: undefined reference to `glfwCreateWindow'
G:\eclipse\CPP WorkSpace\Void\Debug/../Main.cpp:20: undefined reference to `glfwDestroyWindow'
collect2.exe: error: ld returned 1 exit status
23:20:59 Build Finished (took 205ms)
我一直在寻找所有谷歌和计算器,我必须失去了一些东西。我的图书馆可能是32位,我试图编译为64位,但我不知道如何检查这一点。
另外,你会注意到我已经包含了glew头文件。如果我调用包含在其中的函数,它们被定义并且不会导致任何问题。任何帮助都非常感谢。
更新: 尝试使用glfw(libglfw3.a)的32位库构建后,出现新错误。 ../lib\libglfw3.a(init.c.obj):init.c:(.text+0x49):未定义参考`__ms_vsnprintf”
我m在Windows 7上使用mingw。我会给Linux二进制文件一个尝试,让你知道发生了什么。感谢您的答复。 – subtlepseudonym
我使用cmake编译了GLFW,并且包含了它的glfw3.h文件。该项目仍然不编译并列出glfw3.h中的方法为未定义的(如上面的编译器输出所示)。 – subtlepseudonym
我通过在将它重命名为libglfw3dll.a后导入glfw3dll.a而得到它。这看起来像一个骇人的解决方案。 – subtlepseudonym