【发布时间】: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