gpt4 book ai didi

c++ - 如何解决错误 LNK2019

转载 作者:可可西里 更新时间:2023-11-01 18:42:38 25 4
gpt4 key购买 nike

我正在用 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)

最佳答案

我遇到了同样的错误(“LNK2019:未解析的外部符号......”)。我的 header 和调用定义正确,它只是在 Debug模式下无法链接(在 Release模式下没有投诉)。事实证明,我的问题是由不正确的 .vcxproj 引起的文件。

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

有一段时间没有引起注意,因为我使用批处理脚本以Release 模式编译代码。当我切换到Debug 模式时,项目在链接阶段失败了。最终,我发现了我的错误,并通过以下补丁解决了问题:

-    <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 并且互联网上的解释均无帮助时,请检查您的项目设置。如果您使用版本控制,请将当前项目文件与已知良好的旧版本进行比较。

关于c++ - 如何解决错误 LNK2019,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14890847/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com