Я получаю сообщение об ошибке LNK2005 по какой-либо причине или, по крайней мере, никому, что я могу определить. По сути, используя следующий код, я могу скомпилировать без проблем.Похоже на случайные ошибки LNK2005 с GLFW3
test.h
#define GLEW_STATIC
#include <GL\glew.h>
#include <GLFW\glfw3.h>
namespace test
{
//Objects and variables
GLFWwindow* window;
//Function prototypes
bool Initialize();
}
test.cpp
#include "test.h"
#include <iostream>
bool test::Initialize()
{
std::cout << "Initializing GLFW: OpenGL version 3.3 \n";
//Initialize GLFW
glfwInit();
//Set window properties (version 3.3, core profile, not resizeable)
glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3);
glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3);
glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE);
glfwWindowHint(GLFW_RESIZABLE, GL_FALSE);
//Create Window
window = glfwCreateWindow(800, 800, "Learn OpenGL", nullptr, nullptr);
if (window = nullptr)
{
std::cout << "Failed to create GLFW window \n";
glfwTerminate();
return false;
}
return true;
}
int main()
{
test::Initialize();
return 0;
}
Однако при составлении почти одно и то же (http://pastebin.com/VpPep9pM), наряду с другим кодом, это дает ошибки:
Ошибка LNK2005 "struct GLFWwindow * window" (? window @@ 3PAU GLFWwindow @@ A), уже определенный в Main.obj OpenGL D: \ Users \ Matthew \ documents \ visual studio 2015 \ Projects \ OpenGL \ OpenGL \ System.obj
Ошибка LNK2005 "struct GLFWwindow * System :: window" (? window @ System @@ 3PAUGLFWwindow @@ A), уже определенный в Main.obj OpenGL D: \ Users \ Matthew \ documents \ visual studio 2015 \ Projects \ OpenGL \ OpenGL \ System.obj
Ошибка LNK1169 один или несколько умножить Определенные символы найдены OpenGL D: \ Users \ Matthew \ documents \ visual studio 2015 \ Projects \ OpenGL \ Debug \ OpenGL.exe
Итак, я хотел бы знать, что вызывает ошибки, я предполагаю, что это имеет что-то делать с «контекстом».