Получаю кучу ошибок которых нету
Код:
#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е, но не могу понять что именно?