Получаю кучу ошибок которых нету

Код:

#include <iostream>

#include "WaveEngine/include/window.h"
#include "WaveEngine/include/primitives/cube.h"

int main() {
    int size [2] = {800, 600};
    int pos [2] = {100, 100};

    Window my_window(
        "My Window!",
        size,
        pos
    );

    my_window.initialize();

    my_window.renderer->renderModel(Cube::primitive.getPrimitive(&my_window));

    return 0;
}

render.h

//
// Created by IonE on 05.06.2023.
//

#ifndef WAVEENGINE_RENDERER_H
#define WAVEENGINE_RENDERER_H

#pragma once

#include "window.h"

class Renderer {
public:
    WindowFramework *window;

    /**
     * Initialize renderer.
     *
     * @param window
     */
    explicit Renderer(WindowFramework *window) {
        this->window = window;
    }

    /**
     * Render model.
     *
     * @param model Model to render.
     */
    void renderModel(NodePath model) const;
};

#endif

window.h

#ifndef WAVEENGINE_WINDOW_H
#define WAVEENGINE_WINDOW_H

#define WINDOW_DEFAULT_WIDTH 500
#define WINDOW_DEFAULT_HEIGHT 500

#define WINDOW_DEFAULT_X 10
#define WINDOW_DEFAULT_Y 10

#pragma once

#include <iostream>

#include <utility>

#include "renderer.h"

#include "LRGB.h"

#include "../p3d/include/pandaFramework.h"

class Window {
public:
    PandaFramework *p_framework = nullptr;
    WindowFramework *window = nullptr;

    Renderer renderer = nullptr;

    std::string window_title;

    int window_size [2] = {WINDOW_DEFAULT_WIDTH, WINDOW_DEFAULT_HEIGHT};
    int window_position [2] = {WINDOW_DEFAULT_X, WINDOW_DEFAULT_Y};

    /**
     * Window initializer.
     *
     * @param title Window title.
     */
    explicit Window(std::string title) {
        this->window_title = std::move(title);
    }

    /**
     * Window initializer with possibility to set window size and position.
     *
     * @param title Window title.
     * @param size Window size.
     * @param position Window position.
     */
    Window(std::string title, const int size [2], const int position [2]) {
        this->window_title = std::move(title);

        this->window_size[0] = size[0];
        this->window_size[1] = size[1];

        this->window_position[0] = position[0];
        this->window_position[1] = position[1];
    }

    /**
     * Initialize window.
     */
    void initialize();

     /**
      * Set 3D display background.
      */
    void set_3d_background(LRGB RGB);
};

#endif

cube.h

#ifndef WAVEENGINE_CUBE_H
#define WAVEENGINE_CUBE_H

#pragma once

#include "primitive.h"

class Cube {
public:
    inline static Primitive primitive = *new Primitive("obj/cube.obj");
};

#endif

CMake:

cmake_minimum_required(VERSION 3.25)
project(untitled4)

file(GLOB_RECURSE WaveEngineCPPS "WaveEngine/include/*.cpp")
file(GLOB_RECURSE WaveEngineHeaders "WaveEngine/include/*.h")

set(WaveEngineInclude ${WaveEngineCPPS} ${WaveEngineHeaders})

add_library(WaveEngineLib STATIC ${WaveEngineInclude})

add_executable(untitled4 main.cpp ${WaveEngineInclude})

target_link_libraries(untitled4 WaveEngineLib)

set(P3DSDK C:/Panda3D-1.10.13-x64)

target_link_libraries(untitled4 ${P3DSDK}/lib/libp3framework.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libpanda.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libpandaexpress.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libp3dtool.lib)
target_link_libraries(untitled4 ${P3DSDK}/lib/libp3dtoolconfig.lib)

include_directories(${P3DSDK}/include)

Ошибки:

====================[ Build | untitled4 | Release ]=============================
"F:\Clion\CLion 2023.1.3\bin\cmake\win\x64\bin\cmake.exe" --build C:\Users\IonE\CLionProjects\untitled4\cmake-build-release --target untitled4 -j 4
[0/1] Re-running CMake...
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/IonE/CLionProjects/untitled4/cmake-build-release
[1/11] Building CXX object CMakeFiles\WaveEngineLib.dir\WaveEngine\include\utils\strformat.cpp.obj
[2/11] Building CXX object CMakeFiles\untitled4.dir\WaveEngine\include\primitives\primitive.cpp.obj
FAILED: CMakeFiles/untitled4.dir/WaveEngine/include/primitives/primitive.cpp.obj 
C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1430~1.307\bin\Hostx64\x64\cl.exe  /nologo /TP  -IC:\Panda3D-1.10.13-x64\include /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD /showIncludes /FoCMakeFiles\untitled4.dir\WaveEngine\include\primitives\primitive.cpp.obj /FdCMakeFiles\untitled4.dir\ /FS -c C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\primitives\primitive.cpp
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C2238: непредвиденные лексемы перед ";"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(19): error C2061: синтаксическая ошибка: идентификатор "WindowFramework"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(28): error C2061: синтаксическая ошибка: идентификатор "NodePath"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(20): error C2039: "window": не является членом "Renderer".
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(10): note:  см. объявление "Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(20): error C2065: window: необъявленный идентификатор
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): error C2664: "Renderer::Renderer(const Renderer &)": невозможно преобразовать аргумент 1 из "nullptr" в "const Renderer &"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): note: Причина: невозможно преобразовать "nullptr" в "const Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): note: Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(29): note:  см. объявление "Renderer::Renderer"
[3/11] Building CXX object CMakeFiles\untitled4.dir\main.cpp.obj
FAILED: CMakeFiles/untitled4.dir/main.cpp.obj 
C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1430~1.307\bin\Hostx64\x64\cl.exe  /nologo /TP  -IC:\Panda3D-1.10.13-x64\include /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD /showIncludes /FoCMakeFiles\untitled4.dir\main.cpp.obj /FdCMakeFiles\untitled4.dir\ /FS -c C:\Users\IonE\CLionProjects\untitled4\main.cpp
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C2238: непредвиденные лексемы перед ";"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(19): error C2061: синтаксическая ошибка: идентификатор "WindowFramework"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(28): error C2061: синтаксическая ошибка: идентификатор "NodePath"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(20): error C2039: "window": не является членом "Renderer".
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(10): note:  см. объявление "Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(20): error C2065: window: необъявленный идентификатор
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): error C2664: "Renderer::Renderer(const Renderer &)": невозможно преобразовать аргумент 1 из "nullptr" в "const Renderer &"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): note: Причина: невозможно преобразовать "nullptr" в "const Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): note: Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(29): note:  см. объявление "Renderer::Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine/include/primitives/cube.h(8): error C7525: Встроенные (inline) переменные требуют как минимум "/std:c++17".
C:\Users\IonE\CLionProjects\untitled4\WaveEngine/include/primitives/cube.h(8): error C2864: "Cube::primitive": статический элемент элемент данных с инициализатором внутри класса должен иметь неизменяемый целочисленный константный тип или должен быть указан как "inline"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine/include/primitives/cube.h(8): note: тип: Primitive
C:\Users\IonE\CLionProjects\untitled4\main.cpp(18): error C2819: тип "Renderer" не имеет перегруженный "operator ->"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(10): note:  см. объявление "Renderer"
C:\Users\IonE\CLionProjects\untitled4\main.cpp(18): note: возможно, имеется в виду "."
C:\Users\IonE\CLionProjects\untitled4\main.cpp(18): error C2232: ->Renderer::renderModel: левый операнд имеет тип "class", используйте "."
[4/11] Building CXX object CMakeFiles\WaveEngineLib.dir\WaveEngine\include\window.cpp.obj
FAILED: CMakeFiles/WaveEngineLib.dir/WaveEngine/include/window.cpp.obj 
C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1430~1.307\bin\Hostx64\x64\cl.exe  /nologo /TP  -IC:\Panda3D-1.10.13-x64\include /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD /showIncludes /FoCMakeFiles\WaveEngineLib.dir\WaveEngine\include\window.cpp.obj /FdCMakeFiles\WaveEngineLib.dir\WaveEngineLib.pdb /FS -c C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.cpp
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C2143: синтаксическая ошибка: отсутствие ";" перед "*"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(12): error C2238: непредвиденные лексемы перед ";"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(19): error C2061: синтаксическая ошибка: идентификатор "WindowFramework"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(28): error C2061: синтаксическая ошибка: идентификатор "NodePath"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(20): error C2039: "window": не является членом "Renderer".
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(10): note:  см. объявление "Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(20): error C2065: window: необъявленный идентификатор
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): error C2664: "Renderer::Renderer(const Renderer &)": невозможно преобразовать аргумент 1 из "nullptr" в "const Renderer &"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): note: Причина: невозможно преобразовать "nullptr" в "const Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): note: Ни один конструктор не смог принять исходный тип, либо разрешение перегрузки конструктора неоднозначно
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.h(29): note:  см. объявление "Renderer::Renderer"
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.cpp(27): error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов
[5/11] Building CXX object CMakeFiles\untitled4.dir\WaveEngine\include\renderer.cpp.obj
FAILED: CMakeFiles/untitled4.dir/WaveEngine/include/renderer.cpp.obj 
C:\PROGRA~1\MICROS~3\2022\COMMUN~1\VC\Tools\MSVC\1430~1.307\bin\Hostx64\x64\cl.exe  /nologo /TP  -IC:\Panda3D-1.10.13-x64\include /DWIN32 /D_WINDOWS /EHsc /O2 /Ob2 /DNDEBUG -MD /showIncludes /FoCMakeFiles\untitled4.dir\WaveEngine\include\renderer.cpp.obj /FdCMakeFiles\untitled4.dir\ /FS -c C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\renderer.cpp
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): error C3646: renderer: неизвестный спецификатор переопределения
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): error C2059: синтаксическая ошибка: =
C:\Users\IonE\CLionProjects\untitled4\WaveEngine\include\window.h(25): error C2238: непредвиденные лексемы перед ";"
ninja: build stopped: subcommand failed.

100% что то не так с CMakе, но не могу понять что именно?


Ответы (0 шт):