[C++] undefined reference to .. error

zyon

Rule Zero
Hallo and die lieber C++ Coder unter euch.

ich weiß ich habe noch viel zu lernen wenn es um c++ geht. Ich hoffe ich könnt mir trotzdem helfen :D

diese Fehler meldung bekomme
Code:
g++ main.cpp                                                                                                        22:11
/tmp//cczl8708.o(.text+0x2c8): In function `main':
: undefined reference to `oneonetraining(std::vector<strVokabeln, std::allocator<strVokabeln> >&, int*, int&)'
collect2: ld returned 1 exit status

an dieser stelle:
Code:
     27    strVector Woerterbuch;
     28    string zeile;
     29 
     30    while(getline(myFile,zeile))
     31    {
     32       size_t trenn = zeile.find(':');
     33       Woerterbuch.push_back(strVokabeln(zeile.substr(0,trenn),zeile.substr(trenn+1)));
     34    }
     35 
     36    //cout << Woerterbuch[1].sDeutsch;
     37    //loadVokabeln(myFile, myVokabel, iMaxLines);
     38    [B]oneonetraining (Woerterbuch, &iMaxLines, iRound);[/B]


hier noch die header wo die oneonetraining drin ist:
Code:
      1 //---------------------------------------------------------------------------
      2 #include <iostream>
      3 #include <fstream>
      4 #include <string>
      5 #include <vector>
      6 //---------------------------------------------------------------------------
      7 #define ALGO 0
      8 #define ROUND 2
      9 
     10 
     11 struct strVokabeln
     12 {
     13    std::string sDeutsch;
     14    std::string sEnglisch;
     15    strVokabeln(const std::string& de,const std::string& en) : sDeutsch(de),sEnglisch(en) {}
     16 };
     17 
     18 typedef std::vector<strVokabeln> strVector;
     19 
     20 int getFileLines ( std::ifstream &myFile );
     21 void loadVokabeln ( std::ifstream &myFile, strVokabeln *myVocabulum, int &size);
     22 void oneonetraining ( strVector &myVocabulum, int *iMaxLines, int &Durchlaeufe);
//.....


Ich hoffe ich kännt mir helfen.

Gruß

euer zy;)n
 
Hmm das bedeutet das der Linker die Implementation nicht findet. Was Du gemacht hast ist lediglich die Deklaration mit angegeben. Du musst entweder die Implementation mit kompilieren oder aber zuerst ein Objekt der Implementation bauen und dann verlinken.

Ich versuche hier mal kurz deutlich zu machen was ich meine:
1. Simultan Implentation mit kompilieren
Code:
g++ file_mit_oneonetraining_impl.cpp hauptdatei.cpp

oder

2. Zuerst Objekt bauen. (Spart Kompilierzeit wenn Du an anderen Baustellen arbeitest und nicht jedes Mal das Zeugs wieder neu kompilieren willst

Code:
g++ -c file_mit_oneonetraining_impl.cpp
g++ file_mit_oneonetraining_impl.o hauptdatei.cpp

Gruss
 
Zurück
Oben