Когда я пытаюсь скомпилировать, я получаю эту ошибку:
LNK2019: неразрешенный внешний символ public: static void __cdecl A::FUNC_TEST(void)
Заголовок выглядит следующим образом:
#pragma once
class A
{
public:
static A global_var;
private:
A();
virtual ~A();
A(const A&) = delete;
A& operator=(const A&) = delete;
public:
static void FUNC_TEST();
};
в то время как исходный файл выглядит следующим образом:
#include "A.hpp"
A A::global_var;
A::A(){}
A::~A(){}
static void A::FUNC_TEST(){}
и основная функция:
#include <iostream>
#include "A.hpp"
int main() {
A::FUNC_TEST();
return 0;
}
Мне не хватает чего-то простого. До сих пор я искал много похожих вопросов, и большинство из них закончилось отсутствием объявления global_var или спецификатора доступа для имени класса.
Очень ценю вашу помощь.
РЕДАКТИРОВАТЬ: файл cmake:
cmake_minimum_required(VERSION 3.17)
project(Ex1)
set(CMAKE_CXX_STANDARD 14)
add_executable(Ex1 main.cpp)