Probleme mit eigenen includes



  • Irgendwas mache ich falsch, leider weis ich nicht was:

    logisch.cpp

    #include <iostream>
    #include "vergleich.h"
    
    using namespace std;
    
    int main()
    {
    	cout<<"Hallo, wie gehts? gib mir mal 3 Integerzahlen durch Leerzeichen getrennt:\n";
    	int a=0,b=0,c=0;
    	cin>>a>>b>>c;
    	cout<<"Die groesste Zahl war: "<<vergleich(a,b,c)<<".\n";
    }
    

    vergleich.cpp

    #include<iostream>
    
    using namespace std;
    
    int vergleich(int a=0,int b=0,int c=0)
    {
    	if((a>b)&&(a>c)) 
    	{
    		return(a);
    	}
    	else if((b>a)&&(b>c))
    	{
    		return(b);
    	}
    	else return(c);
    }
    

    vergleich.h

    #ifndef __VERGLEICH_H
    #define __VERGLEICH_H
    
    int vergleich(int a,int b,int c);
    
    #endif
    

    Fehlermeldung:

    bobjob@commi:~/src/ueb$ g++ ./logisch.cpp -o logisch
    /tmp/ccCV38sl.o(.text+0x84): In function main': : undefined reference tovergleich(int, int, int)'
    collect2: ld returned 1 exit status
    bobjob@commi:~/src/ueb$

    Kompilation von vergleich.cpp:
    g++ -c ./vergleich.cpp -o vergleich

    Schonmal danke im voraus, bobjob



  • Ähm du musst das in den Header hauen:
    int vergleich(int a=0,int b=0,int c=0);

    und in der source dann den kopf:
    int vergleich(int a,int b,int c)



  • Du musst beide gemeinsam linken, nicht jedes einzeln.

    Also entweder

    g++ logisch.cpp vergleich.cpp

    oder

    g++ -c logisch.cpp
    g++ -c vergleich.cpp
    g++ logisch.o vergleich.o



  • Ach und bitte gib in main nen Wert zurück ansonsten ist das Programm soweit fehlerfrei 😉



  • dali schrieb:

    Ach und bitte gib in main nen Wert zurück ansonsten ist das Programm soweit fehlerfrei 😉

    muss er nicht, dies ist optional



  • danke an dali und Ringding 🙂 , funzt jetzt.


Anmelden zum Antworten