PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : make *** Eroor 1 ohne Fehler



einki
18-10-2003, 12:18
Hi

Ich habe folgendes Makfile

tar all:
cc -c functions.cpp
cc -c main.cpp

cc -o exe functions.o main.o
tar clean:
rm ./*.o

Aber wenn cih es kompiliere gibt er aus
cc -c functions.cpp
In File Include GL/gl.h
In File include GL/glx.h
cc -c main.cpp
In File Include main.h
warning: #pragma once is obsolet
make *** [all] Error1

Wenn ich haendisch Eingebe cc -c main.cpp dann gibt er zwar keine Fehlermeldung aus aber .o File erstellt er auch keines.
Was mach ich falsch

SeeksTheMoon
18-10-2003, 12:38
pragma ist obsolet, sprich: veraltet. Er will das anscheinend nicht mehr übersetzen, weil es stattdessen eine andere Technik (Funktionsaufrauf?) gibt, die man anwenden soll.

amiga
18-10-2003, 12:40
steht doch da :)

#pragma ist obsolete (veraltet)

ich schätze mal bei dir steht "#pragma once" oben in deiner main.h. Die Direktive sorgt dafür dass die Header-Datei in deinem Projekt nur einmal eingebunden wird (es kann sonst leicht mal passieren dass der Compiler die Header-Datei mehrmals oder gar unendlich oft einbinden will)

Diese Direktive kannst du durch folgendes ersetzen :

#ifndef _MAIN_H__
#define _MAIN_H__

und unten am ende der main.h musst du noch

#endif

einfügen

einki
22-10-2003, 21:59
Mir ist schon klar, dass ich die ifndef Konstruktur verwenden kann aber das ist dann wirklich veraltet.......
was ist an #pragma once so veraltet? Oder will er mir nur sagen dass es kein Standard ist?

Inzwischen gehts irgendwie auch mit once aber fragt mich nicht wieso.

by