C++ 为什么这段代码会出现多个定义错误?

C++ 为什么这段代码会出现多个定义错误?,c++,opengl,linker,glfw,C++,Opengl,Linker,Glfw,我有以下计划,我所拥有的是: #include <GL/glfw3.h> int main() { glfwInit(); glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE); glfwTerminate(); } 我从错误中提取了很多行,但是他们都说这些函数首先在libglfw.a中定义,然后多重定义来自libglfw3.a。是的,这两个文件都在我的MinGW/lib文件夹中,但我不明白它们

我有以下计划,我所拥有的是:

#include <GL/glfw3.h>

int main()
{
     glfwInit();
     glfwWindowHint(GLFW_OPENGL_FORWARD_COMPAT, GL_TRUE);
     glfwTerminate();
}   
我从错误中提取了很多行,但是他们都说这些函数首先在
libglfw.a
中定义,然后多重定义来自
libglfw3.a
。是的,这两个文件都在我的
MinGW/lib
文件夹中,但我不明白它们为什么会相互冲突。为什么会发生这种情况?我如何修复它

我正在联系:

mingw32-g++.exe ... -lglfw -lopengl32 -lglu32 -lgdi32 -lglfw3 

共享用于调用编译器的命令您应该只链接到其中一个库,而不是两个库。@AnthonyVallée-Dubois我更新了我的问题。@Appleshell我使用的是代码块。我将全局编译器设置设置为同时链接到
glfw
glfw3
,现在我不知道如何撤消它:(@templateboy
mingw32-g++.exe ... -lglfw -lopengl32 -lglu32 -lgdi32 -lglfw3