Отсутствует тело функции или переменная

Обновлен: Ноябрь 2007

Missing Function Body or Variable

Компилятор может продолжать работу с прототипом функции без ошибок, но компоновщику не удается распознать вызов адреса, поскольку код функции или переменная интервала зарезервированы. Эту ошибку не удастся увидеть до создания вызова функции, которую должен разрешить компоновщик.

Пример

В целом, вызов функции приводит к появлению ошибки LNK2019, поскольку наличие прототипа позволяет компилятору считать, что функция существует. Компоновщик обнаруживает отсутствие функции.

// LNK2019_MFBV.cpp
// LNK2019 expected
void DoSomething(void);
int main() {
   DoSomething();
}

Убедитесь в том, что реализация указанной функции в языке C++ включена для класса, а не только для прототипа в определении класса. При определении класса за пределами файла заголовка необходимо включить имя класса перед функцией (Classname::memberfunction).

// LNK2019_MFBV_2.cpp
// LNK2019 expected
struct A {
   static void Test();
};

// Should be void A::Test() {}
void Test() {}

int main() {
   A AObject;
   AObject.Test();
}

См. также

Ссылки

Ошибка средств компоновщика LNK2019