Не получается вынести метод из класса в отдельный файл

Всем доброго! Вынес реализацию класса в отдельный файл wall.h, и пытаюсь вынести методы этого класса в отдельный файл wall.cpp. При попытке запуска программы в VScode я получаю ошибку компоновщика

ld: Undefined symbols:
  Wall::Wall(double, double), referenced from:
      _main in main-a15ca2.o
  Wall::GetSquare() const, referenced from:
      _main in main-a15ca2.o
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Если методы описываю внутри класса - все работает. Уже всю голову сломал, что я делаю не так? Если в командной строке компилирую - тоже все работает. g++ -W --std=c++17 main.cpp wall.cpp -o main Какие настройки стоит подправить?

//wall.h
class Wall {
public:
    enum class Color {
        BLUE,
        GREEN,
        RED,
        WHITE,
        YELLOW
    };

    Wall(double width, double height);

    double GetHeight() const;
    double GetWidth() const;
    void SetColor(Color color);
    Color GetColor() const;
    double GetSquare() const;

private:
    double width_;
    double height_;
    Color color_;
};
//wall.cpp
#include "wall.h"
Wall::Wall(double width, double height)
        : width_(width), height_(height), color_(Color::WHITE)
{
}

double Wall::GetHeight() const {
    return height_;
}
double Wall::GetWidth() const {
    return width_;
}
void Wall::SetColor(Color color) {
    color_ = color;
}
Wall::Color Wall::GetColor() const {
    return color_;
}
double Wall::GetSquare() const {
    return width_ * height_;
}

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