gcc 代码块不支持glfw3?

83qze16e  于 2022-11-13  发布在  其他
关注(0)|答案(1)|浏览(158)

我正在学习opengl,想使用代码块IDE,因为Visual Studio似乎太滞后和缓慢。在启动一个控制台应用程序项目后,我试图链接GLFW3库,使以下代码运行:

#include <GLFW/glfw3.h>
#include <thread>

int main()
{
    glfwInit();
    std::this_thread::sleep_for(std::chrono::seconds(1));
    glfwTerminate();
}

我使用的是MinGW的GNU GCC 32位编译器(一个自带代码块安装的编译器)。我很确定我做的每件事都是正确的,我已经通读了我能找到的解释如何为opengl设置代码块的每一篇文章。我链接了libglfw3.a和libglfw3dll.a,并为编译器和链接器设置了正确的搜索目录,但无论如何,我总是得到这个未定义的引用错误:

-------------- Build: Debug in glfw_again_test (compiler: GNU GCC Compiler)---------------

g++.exe -L"C:\Program Files\CodeBlocks\MinGW\lib" -o bin\Debug\glfw_again_test.exe obj\Debug\main.o   "C:\Program Files\CodeBlocks\MinGW\lib\libglfw3.a" "C:\Program Files\CodeBlocks\MinGW\lib\libglfw3dll.a" "C:\Program Files\CodeBlocks\MinGW\x86_64-w64-mingw32\lib\libopengl32.a"
obj\Debug\main.o: In function `main':
C:/dev/OpenGL/CodeBlocks/glfw_again_test/main.cpp:6: undefined reference to `glfwInit'
C:/dev/OpenGL/CodeBlocks/glfw_again_test/main.cpp:8: undefined reference to `glfwTerminate'
collect2.exe: error: ld returned 1 exit status
Process terminated with status 1 (0 minute(s), 1 second(s))
3 error(s), 0 warning(s) (0 minute(s), 1 second(s))

我不知道我还能尝试什么来解决这个问题。

643ylb08

643ylb081#

显然我错了,以为我用的是32位的MinGW编译器,但看起来我不小心安装了一个64位的带有代码块的编译器。在切换到mingw gcc 32位编译器并重建(简单的构建会导致错误)我的项目后,我终于让它工作了(不完全是这个代码片段,而是另一个示例)。

相关问题