如何解决错误LNK2019(How to solve error LNK2019)

2019-07-19 22:46发布

我在C ++中发送一个简单的电子邮件。 我从下面的链接下载的样品C ++程序。 http://cboard.cprogramming.com/cplusplus-programming/125655-sending-simple-email-cplusplus.html示例程序似乎砸当编译下面的错误。 请帮我解决。

Error   8   error LNK2019: unresolved external symbol _send_mail referenced in function _wmain  

Error   9   error LNK2019: unresolved external symbol __imp__recv@16 referenced in function "int __cdecl connect_to_server(char const *)" (?connect_to_server@@YAHPBD@Z)    

Error   10  error LNK2019: unresolved external symbol __imp__connect@12 referenced in function "int __cdecl connect_to_server(char const *)" (?connect_to_server@@YAHPBD@Z) 

Error   11  error LNK2019: unresolved external symbol __imp__htons@4 referenced in function "int __cdecl connect_to_server(char const *)" (?connect_to_server@@YAHPBD@Z)    

Error   12  error LNK2019: unresolved external symbol __imp__socket@12 referenced in function "int __cdecl connect_to_server(char const *)" (?connect_to_server@@YAHPBD@Z)  

Error   13  error LNK2019: unresolved external symbol __imp__getprotobyname@4 referenced in function "int __cdecl connect_to_server(char const *)" (?connect_to_server@@YAHPBD@Z)   

Error   14  error LNK2019: unresolved external symbol __imp__gethostbyname@4 referenced in function "int __cdecl connect_to_server(char const *)" (?connect_to_server@@YAHPBD@Z)    

Answer 1:

我遇到了同样的错误(“LNK2019:解析外部符号......”)。 我的头和电话都正确定义,它不仅未能在调试模式(在Release模式无投诉)链接。 原来,我的问题是由不正确引起的.vcxproj文件。

当我通过编辑添加新的依赖于我的项目vxcproj文件,我犯了一个错误:我认为两个部分,不同的文件扩展名是相同的,所以我复制粘贴两行从第一个<ItemGroup>最后<ItemGroup>见下文)。

它去忽视了一段时间,因为我用一个批处理脚本编译发布模式的代码。 当我切换到调试模式下,该项目在链接阶段失败。 最终,我发现我的错误,并解决了与以下补丁的问题:

-    <ClCompile Include="crypto/crypto.h" />
-    <ClCompile Include="crypto/rsa_public_key.h" />
+    <ClInclude Include="crypto/crypto.h" />
+    <ClInclude Include="crypto/rsa_public_key.h" />

巴吉版本的.vcxproj文件:

  <ItemGroup>
    ...
    <ClCompile Include="main.cpp" />
    <ClCompile Include="crypto/crypto.cpp" />
    <ClCompile Include="crypto/rsa_public_key.cpp" />
  </ItemGroup>
  <ItemGroup>
    <None Include="main.def" />
  </ItemGroup>
  <ItemGroup>
    ...
    <ClInclude Include="main.h" />
    <ClCompile Include="crypto/crypto.h" />
    <ClCompile Include="crypto/rsa_public_key.h" />
  </ItemGroup>
  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
  <ImportGroup Label="ExtensionTargets">
  </ImportGroup>
</Project>

底线:当你得到LNK2019并没有在互联网上的帮助说明,请检查您的项目设置。 如果你使用版本控制,比较已知良好的旧版本的当前项目文件。



Answer 2:

也许你已经宣布一类的功能,但忘记了使用范围解析运营商在其定义。 ATLEAST这就是给我的错误。



Answer 3:

在我而言这是发生因为在一个抽象类中的方法,是虚拟的 ,但没有任何的子类实现。

然而,这可能是唯一的那LNK错误的多个原因之一。



Answer 4:

如果你看看错误LNK2019:无法解析的外部似乎问题设置子系统。 你的问题是相关的解析外部符号:错误LNK2019 。



Answer 5:

也许你忘了一些源代码文件包含的项目,或者你忘了实施的功能等,让你的编译器不能找到它。 ( “LNK2019:解析外部符号......”)。



Answer 6:

上点的两个MSDN页施加其中功能参数为指针,而不是对应于所述模块宽decls变量名传递。



Answer 7:

您需要将项目与微软SDK库链接错误涉及插座ODBC和服务器连接



Answer 8:

我有这个错误 - 我的问题是,我叫一个不存在的功能。 因此,在Visual Studio会在其他库和DLL此功能。



文章来源: How to solve error LNK2019