Fehler beim include von Standard Library Header

bEKAR

Grünschnabel
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

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

glutstart.cpp

Code:
#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

Code:
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
 
Hi,

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

Versuchs mal so:

C++:
#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 :( :D

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.
 
Zuletzt bearbeitet von einem Moderator:
Einspruch, Anfänger92! Der Kollege programmiert in C++ und nutzt die Standard-Lib. Dann muss es heißen
Code:
#include <cstdio>
// und/oder
#include <iostream>
#include <glut.h>
using namespace std;
 
Danke für die Antworten haben jede Lösung ausprobiert ausser die C Lösung :)

Leider immernoch ohne Erfolg

Code:
#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.

Code:
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
 
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
 

Anhänge

  • OpenGlut02.zip
    796 KB · Aufrufe: 15
Zuletzt bearbeitet:
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
 
Zurück