Dire che questa funzione si chiama DoThis (const char * abc) in un file chiamato one.cpp. Quindi quando provo a chiamare questa funzione da un'altra funzione in un file sorgente diverso (two.cpp), ottengo l'errore: errore LNK2001: simbolo esterno non risolto (C++), anche se ho usato # include "one.h" Cosa sarebbe Lo faccio per risolvere questo?errore LNK2001: simbolo esterno non risolto (C++)
risposta
Ciò significa che la definizione della funzione non è presente nel programma. Hai dimenticato di aggiungere questo one.cpp
al tuo programma.
Cosa "aggiungere" significa in questo caso dipende dall'ambiente di costruzione e dalla sua terminologia. In MSVC (visto che apparentemente si usa MSVC) si dovrebbe aggiungere one.cpp
al progetto.
In termini più pratici, applicabili a tutte le metodologie di compilazione tipiche, quando si collega il programma, manca il file oggetto creato con il modulo one.cpp
.
Ma cosa succede se il mio file è un file di intestazione che causa una classe astratta? Mi dispiace di scavare vecchio post :) –
@Niklas Vest: se tutto è lì, nell'intestazione, il compilatore/linker dovrebbe essere in grado di trovare tutto senza problemi. Cioè LNK2001 semplicemente non si verificherà. Inserendo elementi inappropriati nei file di intestazione solitamente si alza il rischio di LNK2005, che si trova dall'altra parte dello spettro: troppe definizioni. – AnT
Sembra che tu stia utilizzando Microsoft Visual C++. Se questo è il caso, allora la maggior parte delle possibilità è che non si compila il tuo due.cpp con one.cpp (one.cpp è l'implementazione per one.h).
Se siete da linea di comando (cmd.exe), quindi provare questa prima: cl -o two.exe one.cpp two.cpp
Se siete da IDE, fare clic destro sul nome del progetto dalla soluzione Esplora. Quindi seleziona Aggiungi, Elemento esistente .... Aggiungi one.cpp al tuo progetto.
- 1. errore LNK2001: simbolo esterno non risolto _MessageBox
- 2. C++ simbolo esterno non risolto
- 3. errore LNK2019: simbolo esterno non risolto opencv
- 4. C++ LNK2001 di errore: non risolto funzione di simbolo esterno _main
- 5. errore LNK2001: simbolo esterno "privato: classe statica
- 6. Simbolo esterno non risolto nei file oggetto
- 7. errore LNK2001: simbolo esterno non risolto "__declspec (dllimport) public: class QString & __thiscall QString :: operator = (classe QString &&)"
- 8. Simbolo esterno non risolto LNK2019
- 9. simbolo esterno non risolto "public: __thiscall
- 10. simbolo esterno non risolto __imp____iob_func di riferimento nella funzione _OpenSSLDie
- 11. Simbolo esterno non risolto __vsnprintf .... (in dxerr.lib)?
- 12. Errore LNK2019: Simbolo esterno non risolto in Visual Studio
- 13. C++ continua a ricevere l'errore LNK2019: simbolo esterno non risolto
- 14. Glew in VS 2010: simbolo esterno non risolto __imp__glewInit
- 15. "Simbolo esterno non risolto __except_handler4_common" in Visual Studio 2015
- 16. Errore di Visual Studio Building: simbolo esterno non risolto _IID_IWICImagingFactory (MFC static MFC)
- 17. C++: errore LNK: simbolo esterno non risolto, derivante dalle funzioni virtuali
- 18. simbolo non può essere risolto
- 19. Errore linker boost: simbolo esterno non risolto "class boost :: system :: error_category const & __cdecl boost :: system :: get_system_category (void)"
- 20. Errore LNK2019 simbolo esterno non risolto _main referenziato nella funzione "int __cdecl invoke_main (void)" (? Invoke_main @@ YAHXZ)
- 21. errore del linker 'simbolo esterno non risolto': lavorare con i modelli
- 22. Come si collega una DLL al mio progetto? errore LNK2019: simbolo esterno non risolto
- 23. Errore linker LNK2001
- 24. Collegamento di molti .libs per creare una DLL: simbolo esterno non risolto _DllMainCRTStartup
- 25. errore di simbolo esterno non risolto durante l'importazione di librerie per OpenCV2.3 in Visual Studio 2010 Express C++
- 26. Simbolo eclissi non risolto con Play Framework
- 27. errore simbolo duplicato C++
- 28. LNK2019: non risolti errore di simbolo esterno in Visual Studio C++
- 29. Non riesco a compilare una soluzione a causa di "Errore LNK2028: token non risolto ..."
- 30. Pydev dire "Errore non risolto"
È anche definito in one.h – Enigma
La funzione DoThis è definita nell'intestazione. – user2549990
entrambi i file sono collegati al progetto? – Enigma