Поделиться через


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

Точка входа должна быть определена

Компоновщик не обнаружил точку входа, начальную функцию для вызова в исполняемом файле. По умолчанию компоновщик ищет main или wmain функцию консольного приложения, WinMain а также wWinMain функцию для приложения Windows или DllMain библиотеки DLL, требующей инициализации. Можно указать другую функцию с помощью параметра компоновщика /ENTRY .

Эта ошибка может привести к нескольким причинам:

  • Возможно, вы не включили файл, определяющий точку входа в список файлов для ссылки. Убедитесь, что файл, содержащий функцию точки входа, связан с приложением.
  • Возможно, вы определили точку входа с использованием неправильной сигнатуры функции; Например, возможно, вы неправильно выполнили или использовали неправильный случай для имени функции или неправильно указали тип возвращаемого значения или типы параметров.
  • Возможно, вы не указали параметр /DLL при создании библиотеки DLL.
  • Возможно, вы неправильно указали имя функции точки входа при использовании параметра компоновщика /ENTRY .
  • Если вы используете средство LIB для создания библиотеки DLL, возможно, вы указали файл .def. В этом случае удалите файл .def из сборки.

При создании приложения компоновщик ищет функцию точки входа для вызова запуска кода. Это функция, которая вызывается после загрузки приложения, и среда выполнения инициализируется. Необходимо указать функцию точки входа для приложения или не удается запустить приложение. Точка входа является необязательной для библиотеки DLL. По умолчанию компоновщик ищет функцию точки входа, которая имеет одно из нескольких определенных имен и подписей, например int main(int, char**). Можно указать другое имя функции в качестве точки входа с помощью параметра компоновщика /ENTRY.

Пример

Следующий пример создает LNK1561:

// LNK1561.cpp
// LNK1561 expected
int i;
// add a main function to resolve this error