Комбинация ошибок LNK2019 и LNK1120 в Visual Studio 2019

В очередной раз сталкиваюсь с подобным сообщением об ошибке:

Ошибка LNK2019 ссылка на неразрешенный внешний символ _WinMain@16 в функции "int __cdecl invoke_main(void)" (?invoke_main@@YAHXZ).
A3 C:\Users\arsenij\source\repos\prog_tech\MSVCRTD.lib(exe_winmain.obj) 1

И сразу вслед за этим ошибка LNK1120: неразрешённых внешних элементов 1 Вот пример кода:

#ifndef _RECTANGLE_HPP_
#define _RECTANGLE_HPP_
#include "shape.hpp"
#include <cassert>

namespace alekseev
{
    class Rectangle : public Shape
    {
    public:
        Rectangle(const double width, const double height, const point_t& pos);

        void move(const point_t& pos) override;
        void move(const double dx, const double dy) override;

        rectangle_t getFrameRect() const override;
        double getArea() const override;

        point_t getPos() const;
        double getWidth() const;
        double getHeight() const;
    private:
        double width_;
        double height_;
        point_t pos_;
    };
}

#endif

Main:

#include <iostream>
#include "../common/circle.hpp"
#include "../common/triangle.hpp"
#include "../common/rectangle.hpp"

int main()
{
    return 0;
}

Rectangle.cpp:

#include "rectangle.hpp"

alekseev::Rectangle::Rectangle(const double width, const double height, const point_t& pos) :
    width_(width),
    height_(height),
    pos_(pos)
{
    assert((width > 0) && (height > 0) && "Wrong args for rectangle");
}

void alekseev::Rectangle::move(const point_t& pos)
{
    pos_ = pos;
}

void alekseev::Rectangle::move(const double dx, const double dy)
{
    pos_.x += dx;
    pos_.y += dy;
}

alekseev::rectangle_t alekseev::Rectangle::getFrameRect() const
{
    rectangle_t tempRect;
    tempRect.height = height_;
    tempRect.width = width_;
    tempRect.pos = pos_;
    return( tempRect );
}

double alekseev::Rectangle::getArea() const
{
    return ( width_ * height_ );
}

alekseev::point_t alekseev::Rectangle::getPos() const
{
    return ( pos_ );
}

double alekseev::Rectangle::getWidth() const
{
    return ( width_ );
}

double alekseev::Rectangle::getHeight() const
{
    return ( height_ );
}

Причём на MinGWшном компиляторе всё работает. Здесь я уже не знаю что делать, и чувствую, что моих знаний тут явно недостаточно. В интернетах видел людей с такой же проблемой, то что они советуют не помогло надеюсь на понимание


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