【问题标题】:Codeblocks doesn't support glfw3?代码块不支持 glfw3?
【发布时间】:2022-01-23 00:59:19
【问题描述】:

我正在学习 opengl 并想使用 Codeblocks 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))

我不知道还有什么办法可以解决这个问题。

【问题讨论】:

  • 抱歉,暂时已经找到答案了。显然我错了,以为我使用的是 32 位 MinGW 编译器,但似乎我不小心安装了带有代码块的 64 位编译器。在切换到 mingw gcc 32 位编译器并重建(简单构建会导致错误)后,我的项目终于开始工作了(不完全是这段代码 sn-p,而是另一个示例)。希望这对遇到同样问题的人有所帮助。
  • 请创建一个回答帖子。如果是按照How to Answer的话,你的努力可能会有所收获。
  • 如果你 edit 根据How to Ask 提出的问题,即它拥有所需的所有信息,以便其他人也可以回答它,那么 - 好吧 - 两次。

标签: c++ gcc codeblocks glfw


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 2021-12-20
    相关资源
    最近更新 更多