Итак, я пишу обработчик ввода в C ++ (и GLFW, но это не имеет значения), и одна функция, которая не реализована в заголовке, сбрасывает эту ошибку:
1>Input.obj : error LNK2001: unresolved external symbol "private: static class Input Input::instance" (?instance@Input@@0V1@A)
Это вызывается так в приложении. cpp:
Input::GetInstance().Init(window);
Input::GetInstance().Update();
И реализация выглядит так:
Input.h:
#ifndef INPUT_H_INCULDED
#define INPUT_H_INCLUDED
//Some includes
class Input
{
public:
static Input& GetInstance();
//some other non-static stuff
};
#endif
И реализация в Input . cpp:
Input& Input::GetInstance()
{
return instance;
}
instance
является закрытым членом Input.
У меня есть glew и glfw libs, и он включен в папку с названием Dependencies в каталоге решений. Я включил его в свойства проекта в C / C ++ \ General \ Additional Include Каталоги, а также добавил $ (SolutionDir) sr c, потому что я поместил каждый исходный файл в sr c.
* 1019. * Затем я связал их, в Linker \ General \ Additional Library Directory, я добавил расположение файлов lib, и в Linker \ Input я добавил glfw3.lib, opengl32.lib и glew3s.lib в Дополнительные зависимости и, наконец, добавил определение препроцессора GLEW_STATI C. Это единственные изменения, которые я сделал в свойствах проекта, и я использую Debug, конфигурацию x86. Ссылка на исходный код:
https://github.com/Andrispowq/Prehistoric-Engine---C-