2013-02-15 10 views
6

Sto inviando una semplice email in C++. Ho scaricato un programma C++ di esempio dal link sottostante. http://cboard.cprogramming.com/cplusplus-programming/125655-sending-simple-email-cplusplus.html Il programma di esempio sembra raggiungere il seguente errore durante la compilazione. Per favore aiutami con la soluzione.Come risolvere l'errore LNK2019

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

Error 9 error LNK2019: unresolved external symbol [email protected] referenced in function "int __cdecl connect_to_server(char const *)" ([email protected]@[email protected])  

Error 10 error LNK2019: unresolved external symbol [email protected] referenced in function "int __cdecl connect_to_server(char const *)" ([email protected]@[email protected]) 

Error 11 error LNK2019: unresolved external symbol [email protected] referenced in function "int __cdecl connect_to_server(char const *)" ([email protected]@[email protected])  

Error 12 error LNK2019: unresolved external symbol [email protected] referenced in function "int __cdecl connect_to_server(char const *)" ([email protected]@[email protected]) 

Error 13 error LNK2019: unresolved external symbol [email protected] referenced in function "int __cdecl connect_to_server(char const *)" ([email protected]@[email protected]) 

Error 14 error LNK2019: unresolved external symbol [email protected] referenced in function "int __cdecl connect_to_server(char const *)" ([email protected]@[email protected])  
+0

Sembra che tu stia manca un file di origine o una biblioteca. –

+0

Abbastanza sicuro di non aver compilato il sorgente o collegato ad esso. –

risposta

3

se si guarda error LNK2019: unresolved external sembrare il problema è l'impostazione del sottosistema. La tua domanda è relativa a error LNK2019: unresolved external symbol.

+2

Ho scoperto il problema che WS2_32.lib dovrebbe essere aggiunto in proprietà-> linker-> input-> dipendenze aggiuntive. Tutti gli errori sono andati tranne il sotto error.please hlp me out. Errore errore LNK2019: simbolo esterno non risolto _send_mail di riferimento nella funzione _wmain – user1

+0

'send_mail' è definito nel codice sorgente sul [sito collegato a] (http://cboard.cprogramming.com/cplusplus-programming/125655- l'invio-semplici-mail-cplusplus.html). Si chiama 'smtpfuncs.c'. È necessario compilarlo e collegarlo. –

+1

Ciao Peter grazie per la risposta, ho usato smtpfuncs.cpp invece di smtpfuncs.c, ma qual è il grosso problema in esso.Il suo funzionamento quando salvo in .c e dando il linker pblm quando salvato in .cpp.Io non l'ho ottenuto . – user1

9

Ho riscontrato lo stesso errore ("LNK2019: simbolo esterno non risolto ...."). Le mie intestazioni e chiamate sono state definite correttamente e non è riuscito a collegarsi in modalità Debug (nessun reclamo in modalità Debug). Si è scoperto che il mio problema era causato da un file .vcxproj errato.

Quando ho aggiunto nuove dipendenze a mio progetto modificando il file vxcproj, ho fatto un errore: ho pensato che le due sezioni erano identici tranne che per l'estensione del file, in modo da copia-incollato due righe dal primo <ItemGroup> al ultimo <ItemGroup> (vedi sotto).

Passò inosservato per un po ', perché ho usato uno script batch per compilare il codice nella modalità Release. Quando sono passato alla modalità Debug, il progetto non è riuscito nella fase di collegamento. In ultima analisi, ho scoperto il mio errore, e risolto il problema con la seguente 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" /> 

versione Buggy del file .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> 

Bottom line: Quando si arriva LNK2019 e nessuna delle spiegazioni sulla guida in linea, controlla le impostazioni del tuo progetto. Se si utilizza il controllo della versione, confrontare il file di progetto corrente con una versione precedente di tipo noto.

8

Probabilmente si è dichiarata la funzione in una classe, ma si è dimenticato di utilizzare l'operatore di risoluzione dell'ambito nella sua definizione. Questo è ciò che mi ha dato quell'errore.

4

Nel mio caso questo stava accadendo perché un metodo in una classe astratta era virtuale ma non è stato implementato in nessuna delle sottoclassi.

Tuttavia, questa potrebbe essere solo una delle molteplici cause di tale errore LNK.

2

Probabilmente hai dimenticato di includere alcuni file di codice sorgente nel progetto, o hai dimenticato di implementare una funzione, ecc. in modo che il compilatore non possa trovarlo. ("LNK2019: simbolo esterno non risolto ....").

+0

Questo probabilmente sarebbe meglio come commento. – lmo

1

Il punto due su MSDN page si applicava dove i parametri di funzione venivano passati come puntatori invece dei nomi di variabile corrispondenti ai decl di modulo.

-1

Ho avuto questo errore - e il mio problema era che chiamo una funzione che non esisteva. Quindi lo studio visivo cerca questa funzione in altre librerie e DLL.

0

È necessario collegare il progetto con le librerie Microsoft SDK per gli errori che coinvolgono presa ODBC e connessioni al server

Problemi correlati