Статическая функция не доступна или не используется C ++ - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь использовать статический класс, но по какой-то причине я получаю действительно бесполезную ошибку.

Это статический класс, к которому я пытаюсь получить доступ:

static class Camera
{

public:
    Camera();
    ~Camera();

    static glm::mat4 viewMatrix;

    static void move(float x, float y, float z) {// add 3 more values for the cube
        viewMatrix = glm::lookAt(glm::vec3(x, y, z),glm::vec3(0.0f, 0.0f, 0.0f),glm::vec3(0.0f, 1.0f, 0.0f));
    } 


    static glm::mat4 getViewMatrix() {
        return viewMatrix;
    }
};

Я пытаюсь получить доступ к функции:

 Camera::move(xdist, ydist, zdist);

Ошибка:

Severity    Code    Description Project File    Line    Suppression State
Error   LNK2001 unresolved external symbol "public: static struct glm::detail::tmat4x4<float> Camera::viewMatrix" (?viewMatrix@Camera@@2U?$tmat4x4@M@detail@glm@@A) sample  

1 Ответ

0 голосов
/ 25 октября 2019

Решено, добавлено это в файл cpp:

 glm::mat4 Camera::viewMatrix = glm::mat4(1.0);

Требуется для инициализации viewMatrix в .cpp, а не в файле .h

...