Problem mit Verknüpfen von Quellcodedateien



  • Hallo erstmal, ich bin neu in dem Forum, hab schon einiges gelesen, aber nichts, das eine Antwort auf mein Problem hätte. Da ich ein blutiger Anfänger in C++ bin wollte ich mein Problem mal vorstellen. (Ich besitze das Microsoft Visual Studio 6)

    Mein Code besteht aus 3 Dateien:

    haupt.cpp

    #include <iostream>
    #include "h.h"
    using namespace std;
    
    int main()
    {
    	string kette;
    	cout <<"geben sie etwas ein ";
    	cin >>kette;
    	cout <<k(kette);
    	return 0;
    }
    

    f.cpp

    #include <iostream>
    #include <string>
    using namespace std;
    
    int k(string kette)
    {
    	int i =0;
    	char b;
       do
    	{ b = kette[i++];
    	}while( b != '\0');
    	return (i-1);
    }
    

    h.h

    #include <string>
    using namespace std;
    int k(string kette);
    

    Ich habe einen Standard Arbeitsbereich erstellt.

    Mein Problem: Ich habe exakt den gleichen Quellcode in 2 verschiedenen Projekten. (Die Projekte sind meines erachtens absolut identisch) ->sie sind nur in verschiednen Ordnern

    In dem einen Projekt kann ich den Code compillieren, in dem anderen Projekt erhalte ich 2 Fehlermeldungen beim Compillierversuch:

    --------------------Konfiguration: haupt - Win32 Debug--------------------
    Kompilierung läuft...
    haupt.cpp
    Linker-Vorgang läuft...
    haupt.obj : error LNK2001: Nichtaufgeloestes externes Symbol "int __cdecl k(class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?k@@YAHV?basic_string@DU?basic\_string@DU?char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
    Debug/haupt.exe : fatal error LNK1120: 1 unaufgeloeste externe Verweise
    Fehler beim Ausführen von link.exe.

    haupt.exe - 2 Fehler, 0 Warnung(en)

    Ich bin mittlerweile total verzweifelt, da ich den Fehler nicht finde. Einmal funktioniert der Code einwandfrei und in dem anderen Projekt kann ich ihn nicht kompillieren.

    Vielen Dank schonmal für Antworten

    Don Quijote



  • haupt.cpp
    Linker-Vorgang läuft...

    Da steht nichts von f.cpp, diese wird wahrscheinlich nicht richtig in das eine
    Projekt eingebunden sein und deshalb nicht kompiliert werden



  • Danke erstmal für die schnelle Antwort.

    Mein Problem ist jetzt, dass ich beide Projekte auf exakt die gleiche Weise erstellt habe, mit dem unterschied, dass es 1x geklappt hat und dann nicht wieder.

    Wenn die f.cpp nicht richtig eingebunden ist, wie kann ich das erreichen?

    Edit: du hast recht, die funkton wird nicht aufgeführt. es existiert nur main. Allerdings weis ich nicht, wie ich die Quellcodedatei einbinden kann.

    Edit2: So hab etwas rumprobiert und die Lösung gefunden.
    Vlt. hilft es noch anderen Leuten:

    Projekt->Dem Projekt hinzufügen-> Dateien: ->->aus Liste auswählen

    Vielen Dank für deine Hilfe Storm.Xapek.de, ohne deine Bemerkung wär ich niemals drauf gekommen. 🙂 🙂 👍


Log in to reply