compiler Error "mutiple definition of.."

NetzUnity und Informatik-forum wurden zusammengelegt. Eine entsprechende Ankündigung wird demnächst noch folgen. Für 2025 ist hier einiges geplant! Bei Fragen bitte per DM an Maximilian Rupp wenden.
  • Hallo,
    Ich schreib grad (in DevC++) ein Programm aus mehreren Dateien die eine gemeinsame *.h includen. In dieser wird eine lib (*.a) eingebunden -> leider kommt beim kompilieren der Fehler "multiple definition of ..." des einzelnen Objekts das die lib bereitstellt und in der *.h erzeugt wird.
    Woran kann das liegen? es ist sowohl die *.h der lib als auch die *.h des Projekts mit #defines abgesichert...

    Komischerweise zeigt er bei den Dateien in denen das vorkommt auch "..\Dev-Cpp\include\c++\3.4.2\bits\stl_tree.h" an ( lib verwendet stl-maps)

    main.cpp

    Code
    #include "h1.h"
    
    
    int main(int argc, char *argv[])
    {
    	system("PAUSE");
    	return EXIT_SUCCESS;
    }

    c1.cpp

    Code
    #include "h1.h"
    
    
    int dummy(){		// irgendwas
    	cout<<"ich bin ein dummy"<<endl;	
    	return 0;
    }

    h1.h

    C
    #ifndef _h1H_
    	#define _h1H_
    #include <libown.h>			 // header für lib
    #include <iostream>
    
    
    myini iniWert("config.cfg");	 // kommt aus der lib
    
    
    #endif

    bring folgende Fehlermeldung:

    Code
    ..\Neuer Ordner\c1.o In function `Z5dummyv':
    3 ..\Neuer Ordner\c1.cpp multiple definition of `iniWert' 
    5 ..\Neuer Ordner\main.o: ..Neuer Ordner\main.cpp first defined here 
    5 ..\Neuer Ordner\main.o: ..Neuer Ordner\main.cpp ld returned 1 exit status 
       ..\Neuer Ordner\Makefile.win [Build Error]  [Projekt2.exe] Error 1


    danke im voraus

  • Zitat von michi204

    schreib doch die myini-zeile in ein cpp-file :)
    sonst definierst du das selbe symbol ja mehrfach "global", und das geht nicht..
    i

    danke, das hat mich auf die richtige Idee gebracht:)
    habs in *.h mit extern deklariert und in einer *.cpp dann erst definiert.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!