我正在用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) 发布于 2013-10-31 04:34:46
我遇到了同样的错误("LNK2019: unresolved symbol ...“)。我的头和调用定义正确,只有在调试模式下无法链接(在发布模式下没有任何抱怨)。原来我的问题是由一个不正确的.vcxproj文件引起的。
当我通过编辑vxcproj文件向我的项目添加新的依赖项时,我犯了一个错误:我认为除了文件扩展名之外,这两个部分是相同的,所以我从第一个<ItemGroup>到最后一个<ItemGroup>复制粘贴了两行(见下文)。
它被忽略了一段时间,因为我在Release模式下使用了一个批处理脚本来编译代码。当我切换到调试模式时,项目在链接阶段失败。最终,我发现了我的错误,并用以下补丁解决了这个问题:
- <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,但互联网帮助中没有任何解释,那就检查一下你的项目设置。如果使用版本控制,请将当前项目文件与已知良好的旧版本进行比较。
发布于 2014-05-13 16:42:30
您可能已经在类中声明了函数,但忘记在其定义中使用范围解析运算符。至少这就是给我这个错误的原因。
发布于 2015-04-21 06:15:54
在我的例子中,这是因为抽象类中的方法是虚拟的,但没有在任何子类中实现。
然而,这可能只是LNK错误的多个原因之一。
https://stackoverflow.com/questions/14890847
复制相似问题