How to solve error LNK2019

2019-02-09 22:12发布

I am sending a simple email in C++. I downloaded a sample C++ program from the below link. http://cboard.cprogramming.com/cplusplus-programming/125655-sending-simple-email-cplusplus.html The sample program seems to hit the following error when it is compiling. Please help me with solution.

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)    

8条回答
Luminary・发光体
2楼-- · 2019-02-09 23:03

Probably you have declared the function in a class, but forgotten to use the scope resolution operator in its definition. Atleast that's what gave me that error.

查看更多
唯我独甜
3楼-- · 2019-02-09 23:05

Probably you forgot to include some source code files to the project, or you forgot to implement a function, etc. so your compiler cannot find it. ("LNK2019: unresolved external symbol ....").

查看更多
戒情不戒烟
4楼-- · 2019-02-09 23:05

You need to link your project with the Microsoft SDK libraries for errors involving socket odbc and server connections

查看更多
三岁会撩人
5楼-- · 2019-02-09 23:05

I had this error - and my problem was that I call a function that didn't exist. So the visual studio looks for this function in other libraries and dlls.

查看更多
不美不萌又怎样
6楼-- · 2019-02-09 23:06

I encountered the same error ("LNK2019: unresolved external symbol ...."). My headers and calls were defined correctly, and it only failed to link in Debug mode (no complaints in Debug mode). It turned out that my issue was caused by an incorrect .vcxproj file.

When I added new dependencies to my project by editing the vxcproj file, I made a mistake: I thought that the two sections were identical except for the file extension, so I copy-pasted two lines from the first <ItemGroup> to the last <ItemGroup> (see below).

It went unnoticed for a while, because I used a batch script to compile the code in Release mode. When I switched to Debug mode, the project failed at the linking stage. Ultimately, I discovered my error, and resolved the problem with the following patch:

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

Buggy version of the .vcxproj file:

  <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>

Bottom line: When you get LNK2019 and none of the explanations on the internet help, check your project settings. If you use version control, compare the current project file with a known-good older version.

查看更多
别忘想泡老子
7楼-- · 2019-02-09 23:08

If you look error LNK2019: unresolved external it seem the problem is setting the subsystem. Your question is related to error LNK2019: unresolved external symbol.

查看更多
登录 后发表回答