链接器工具错误 LNK1561

必须定义入口点

链接器未找到入口点,即在可执行文件中调用的初始函数。 默认情况下,链接器为控制台应用的 mainwmain 函数、Windows 应用的 WinMainwWinMain 函数,或者需要初始化的 DLL 的 DllMain。 可以使用 /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