fatal error LNK1120: 1 unresolved externals
具体原因
代码问题
如果 LNK2001 诊断文本
报告 __check_commonlanguageruntime_version 是无法解析的外部符号,则请参见 LNK2019 获得有关如何解决该
问题的信息。
成员模板的定义超出了类的范围。Visual C++ 的一个限制是,成员模板的定义必须完全位于封闭类内。有关 LNK2001 和成员模板的更多信息,请参见知识库文章 Q239436。
代码或模块定义 (.def) 文件中的大小写不匹配会导致 LNK2001。例如,当在一个 C++ 源文件中将一个变量命名为 var1,并试图在另一个源文件中以 VAR1 访问该变量时。
如果项目使用函数内联,但在 .cpp 文件而非头文件中定义函数,则会导致 LNK2001。
从 C++
程序调用 C 函数但不使用 extern "C"(这导致编译器使用 C 命名约定)会导致 LNK2001。编译器选项 /Tp 和 /Tc 使编译器将文件分别编译为 C++ 或 C,与文件扩展名无关。这些选项会导致函数名与您所期望的名称不同。
试图引用没有外部链接的函数或数据会导致 LNK2001。在 C++ 中,内联函数和 const 数据具有内部链接,除非被显式指定为 extern。
缺少函数主体或变量会导致 LNK2001。如果只有函数原型或 extern 声明,编译器继续运行而不会出现任何错误,但由于没有保留函数代码或变量空间,链接器将无法解析地址调用或变量引用。
调用参数类型与函数声明中的参数类型不匹配的函数会导致 LNK2001。名称修饰将函数参数合并到最终修饰函数名中。
错误包含的原型导致编译器需要没有提供的函数体,这样会导致 LNK2001。如果同时具有函数 F 的类实现和非类实现,请注意 C++ 范围解析规则。
在使用 C++ 时,将函数原型包含在类定义中但未能包含实现(该类的此函数的实现)会导致 LNK2001。
试图从抽象基类的构造函数或析构函数调用纯虚函数会导致 LNK2001。纯虚函数没有基类实现。
试图在函数范围外使用用该函数声明的变量(局部变量)会导致 LNK2001。
在生成 ATL 项目的发布版本时,指示需要 CRT 启动代码。若要修复,请执行下列操作之一:
将 _ATL_MIN_CRT 从预处理器定义的
列表中移除,以允许包括 CRT 启动代码。有关更多信息,请参见常规配置设置属性页。
如果可能,移除对需要 CRT 启动代码的 CRT 函数的调用,而是使用它们的 Win32 等效函数。例如,使用 lstrcmp,而不要使用 strcmp。需要 CRT 启动代码的已知函数是一些字符串和浮点函数。
fatal error LNK1120
选择Project/Settings下Link项Option内的/subsystem:console改为/subsystem:windows。应该就可以了。 #pragma comment(lib"ws2_32.lib") #pragma comment(lib,"ws2_32.lib") 般来说, 这是工程的类型选择错误引起的.如
在VC中, 1.本来应该选择"Win32 Console Application",而错误选择了"Win32 Application" 2.使用了MFC的类,而选择"工程"的"设置"不使用MFC库编译. 改正的方法有: 1. 选择"工程"-> "设置"-> 连接,在底部的编辑窗口中,找到"/subsystem",把其改成 "/subsystem:console" "/subsystem:windows". 2.在"工程"-> "设置"->"一般"选项中,在MFC项中改为"USE MFC AS A SHARED DLL". 也可在stdafx.cpp里添加 #pragma comment(lib,"wsock32.lib") 选择Project/Settings下Link项object/Library modules
fatal error LNK1169
fatal error C1010: unexpected end of file while looking for precompiled header directive。
寻找预编译头文件路径时遇到了不该遇到的文件尾。(一般是没有#include "stdafx.h")
2、fatal error C1083: Cannot open include file: 'R…….h': No such file or directory
不能打开包含文件“R…….h”:没有这样的文件或目录。
3、error C2011: 'C……': 'class' type redefinition
类“C……”重定义。
4、error C2018: unknown character '0xa3'
不认识的字符'0xa3'。(一般是汉字或中文