# Fehler beim include von Standard Library Header



## bEKAR (11. September 2009)

Guten Abend, 

ich programmier ab und zu mit Eclipse und mit VC 9.0 nun hab ich neues Projekt vom VC 9.0 gestartet und entwickle kleine OpenGL Applikations. 

Bei VS C++ 9.0 habe ich ein neues Projekt gestartet das sieht so aus:

glutstart.h


```
#pragma once
#include <glut.h>
class glutstart
{
public:
	glutstart(void);
	~glutstart(void);
};
```

glutstart.cpp


```
#include "glutstart.h"



glutstart::glutstart(void)
{
}

glutstart::~glutstart(void)
{
}
void DrawLine() {
    glClear(GL_COLOR_BUFFER_BIT);
    glColor3f(1.0, 1.0, 1.0);
    glBegin(GL_LINES);
        glVertex3f(0.25, 0.25, 0.0);
        glVertex3f(0.75, 0.75, 0.0);
    glEnd();
    glFlush();
}

void Initialize() {
    glClearColor(0.0, 0.0, 0.0, 0.0);
    glMatrixMode(GL_PROJECTION);
    glLoadIdentity();
    glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int iArgc, char** cppArgv) {
    glutInit(&iArgc, cppArgv);
    glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
    glutInitWindowSize(250, 250);
    glutInitWindowPosition(200, 200);
    glutCreateWindow("Draw Line");
    Initialize();
    glutDisplayFunc(DrawLine);
    glutMainLoop();
    return 0;
}
```
Das ganze funktioniert auch ABER sobald ich irgendwo egal wohin 

#include <iostream>

schreibe kommt dieser Fehler


```
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2039: 'div_t': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2873: 'div_t': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2039: 'ldiv_t': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2873: 'ldiv_t': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(23) : error C2039: 'abort': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(23) : error C2873: 'abort': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(23) : error C2039: 'abs': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(23) : error C2873: 'abs': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(24) : error C2039: 'atof': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(24) : error C2873: 'atof': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(24) : error C2039: 'atoi': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(24) : error C2873: 'atoi': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(24) : error C2039: 'atol': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(24) : error C2873: 'atol': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(25) : error C2039: 'bsearch': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(25) : error C2873: 'bsearch': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(25) : error C2039: 'calloc': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(25) : error C2873: 'calloc': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(25) : error C2039: 'div': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(25) : error C2873: 'div': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(26) : error C2039: 'free': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(26) : error C2873: 'free': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(26) : error C2039: 'getenv': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(26) : error C2873: 'getenv': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(27) : error C2039: 'labs': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(27) : error C2873: 'labs': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(27) : error C2039: 'ldiv': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(27) : error C2873: 'ldiv': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(27) : error C2039: 'malloc': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(27) : error C2873: 'malloc': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(28) : error C2039: 'mblen': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(28) : error C2873: 'mblen': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(28) : error C2039: 'mbstowcs': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(28) : error C2873: 'mbstowcs': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(28) : error C2039: 'mbtowc': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(28) : error C2873: 'mbtowc': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(29) : error C2039: 'qsort': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(29) : error C2873: 'qsort': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(29) : error C2039: 'rand': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(29) : error C2873: 'rand': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(29) : error C2039: 'realloc': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(29) : error C2873: 'realloc': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(30) : error C2039: 'srand': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(30) : error C2873: 'srand': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(30) : error C2039: 'strtod': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(30) : error C2873: 'strtod': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(30) : error C2039: 'strtol': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(30) : error C2873: 'strtol': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(31) : error C2039: 'strtoul': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(31) : error C2873: 'strtoul': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(31) : error C2039: 'system': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(31) : error C2873: 'system': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(32) : error C2039: 'wcstombs': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(32) : error C2873: 'wcstombs': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(32) : error C2039: 'wctomb': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(32) : error C2873: 'wctomb': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>.\glutstart.cpp(32) : error C2084: Funktion 'int main(int,char **)' hat bereits einen Funktionsrumpf
1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(165): Siehe vorherige Definition von 'main'
1>Das Buildprotokoll wurde unter "file://c:\Documents and Settings\rwe\My Documents\Visual Studio 2008\Projects\OpenGlut02\OpenGlut02\Release\BuildLog.htm" gespeichert.
1>OpenGlut02 - 57 Fehler, 0 Warnung(en)
```


Ich habe keine Ahnung woher diese Fehler kommt und hoffe einfach das jemand von euch das schonmal gesehen hat und eine ganz einfache Lösung dafür hat denn ich habe schon 3 Stunden google durchsucht und bin immer auf "sichere" Lösungen gestoßen die am Ende doch nicht funktioniert haben. Ich kann auch sonst keine Standard Libraries include bei jeder kommt ein ähnlicher Fehler.

Danke für eure Hilfe

Mit freundlichen Grüßen

Richard


----------



## saftmeister (12. September 2009)

Versuch mal das hier:


```
#include <iostream>
using namespace std;
```


----------



## Anfänger92 (12. September 2009)

Hi,

wo sollen die Standard Library Header bei dir bitte eingebunden werden?

Versuchs mal so:


```
#include <stdio.h>
#include <glut.h>
```

Falls es dann ncoh nicht geht lass mal zum Testen 
#pragma once
weg

Gruß
Anfänger

EDIT:
Zu Spät  

EDIT (2):
Kann es sein das du noch ne .cpp oder .c Datei in dem Projekt hast?
Sonst kann ich mri nich erklären warum main() schon einen Funktionsrumpf haben soll.


----------



## Onkel Schuppig (12. September 2009)

Einspruch, Anfänger92! Der Kollege programmiert in C++ und nutzt die Standard-Lib. Dann muss es heißen

```
#include <cstdio>
// und/oder
#include <iostream>
#include <glut.h>
using namespace std;
```


----------



## Anfänger92 (12. September 2009)

Na gut 

Einspruch statgegeben 

Danke für die Verbesserung 

MFG
Anfänger


----------



## bEKAR (14. September 2009)

Danke für die Antworten haben jede Lösung ausprobiert ausser die C Lösung  

Leider immernoch ohne Erfolg


```
#pragma once


#include <cstdio>
// und/oder
//#include <iostream>
#include <glut.h>
using namespace std;

class glutstart
{
public:
	glutstart(void);
	~glutstart(void);
};
```

sollange ich die iostream auskommentiere funktioniert das kompilieren und meine Line erscheint auch. Aber sobald ich sie wieder auskommentiere gibt es den gleichen Fehler. 


```
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2039: 'div_t': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2873: 'div_t': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2039: 'ldiv_t': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(21) : error C2873: 'ldiv_t': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(32) : error C2039: 'wctomb': Ist kein Element von '`global namespace''
1>C:\Program Files\Microsoft Visual Studio 9.0\VC\include\cstdlib(32) : error C2873: 'wctomb': Das Symbol kann nicht in einer using-Deklaration verwendet werden
1>.\glutstart.cpp(32) : error C2084: Funktion 'int main(int,char **)' hat bereits einen Funktionsrumpf
1>        C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdlib.h(165): Siehe vorherige Definition von 'main'
```

Hat vielleicht jemand noch einen Tipp? Bin so langsam kurz davon VS zu deinstallieren wenn die Installation nicht 6 Stunden dauern würde....

Mit freundlichen Grüßen

Richard


----------



## Anfänger92 (14. September 2009)

Hi,

Knaste vll mal das Projekt uppen?
Dann wer es leichter das ganze sich anzuschauen.

Gruß
Anfänger


----------



## bEKAR (15. September 2009)

Hallo Anfänger,

ich habe das ganze Projekt jetzt gezippt und angehangen. Vielleicht kommt du ja auf eine Lösung mir leuchtet das absolut nicht ein. 

Grüße bEKAR


----------



## deepthroat (15. September 2009)

Hi.

Wo hast du denn die glut.h Datei her (welches Paket, welche Seite)?

Kannst du die auch mal hier reinstellen?

Gruß


----------



## bEKAR (15. September 2009)

Das kann nicht an der glut.h liegen. Ich habe gerade ein komplett neues Projekt gestartet kompiliert und es funktioniert. Sobald ich aber

#include <iostream>

schreibe. Bekomme ich die genau die gleichen Fehler wie oben beschrieben also muss es irgendwie mit den Standard Libs zu tun haben. Wenn ich die <iostream> öffne findet er sie auch korrekt und der Inhalt scheint auch zu stimmen.

bei 

#include <sstream>

bekomm ich den gleichen Fehler. 

mach ich aber 

#include <blabla> bekomm ich 
.....\visual studio 2008\projects\openglut03\openglut03\stdafx.h(12) : fatal error C1083: Datei (Include) kann nicht geöffnet werden: "blabla": No such file or directory


Jemand ein Tipp woher das das kommen kann und wie man so einen Fehler behebt? 

Danke! 

Gruß bEKAR


----------



## 3Cyb3r (16. September 2009)

Hi ueberpruef dochmal die Headerdateien und oder lad sie dir nochml runter (backup nict vergesen).
mfg


----------



## deepthroat (16. September 2009)

bEKAR hat gesagt.:


> Das kann nicht an der glut.h liegen. Ich habe gerade ein komplett neues Projekt gestartet kompiliert und es funktioniert. Sobald ich aber
> 
> #include <iostream>
> 
> schreibe.


Kannst du denn ein normales Programm wo der iostream Headerdatei eingebunden ist, ohne glut.h kompilieren? Oder meintest du das jetzt gerade?

Jedenfalls ist das Projekt was du hochgeladen hast nutzlos, da man damit den Fehler (ohne deine glut.h) nicht nachvollziehen kann.

Gruß


----------

