g++ "nicht name a type" - Fehler
Ich arbeite an einem kleinen Projekt für meine Strukturen-Klasse, und es laufen in ein Problem, auch der TA konnte es nicht herausfinden. Es wurde vorgeschlagen, poste ich es hier und ich könnte etwas Hilfe. Also hier geht es:
Überblick:
Ich benutze g++ zum kompilieren eines Projekts mit einer Reihe von header (.h) Dateien zusammen mit der zugehörigen Implementierung (.cpp) - Dateien. Das Projekt umfasst 3 separate Strukturen und die Führung eines timing-Vergleich zwischen Ihnen. Die Strukturen umgesetzt und verglichen werden einen binären min-heap, ein Linker Haufen, und ein skew heap. Die min-heap-Implementierung ist abgeschlossen, und ist die Zusammenstellung gut so. Aber jetzt, dass ich ' m verschieben auf die anderen Strukturen, die ich in was ich nehme (die ich kenne) ist ein compiler-Fehler.
Das Problem
Ich bin Konkretisierung des stub-Dateien für die linke Haufen und haben gegen eine Wand geprallt, wie weit die compiler betrifft. Insbesondere bin ich immer die Fehlermeldung:
leftHeap.cpp:15:1: error: ‘LeftistHeap’ does not name a type
Den Code
Hier ist ein Blick auf relevante code:
leftHeap.h
#ifdef LEFTHEAP_H
#define LEFTHEAP_H
class LeftistHeap{
public:
int *root;
LeftistHeap();
~LeftistHeap();
};
#endif
leftHeap.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <math.h>
#include "leftHeap.h"
using namespace std;
//Constuctor
LeftistHeap::LeftistHeap(){
root = NULL;
}
Die einzige andere Stelle, leftHeap.h enthalten ist in der main.cpp
main.cpp
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <stdio.h>
#include <math.h>
#include "minHeap.h"
#include "leftHeap.h"
#include "skewHeap.h"
using namespace std;
int main(){
...
hier ist das makefile, das ich verwende:
makefile
all: lab10
lab10: comparison.o minHeap.o leftHeap.o skewHeap.o
g++ comparison.o minHeap.o leftHeap.o skewHeap.o -o lab10
comparison.o: comparison.cpp
g++ -c comparison.cpp
minHeap.o: minHeap.h minHeap.cpp
g++ -c minHeap.h minHeap.cpp
leftHeap.o: leftHeap.h leftHeap.cpp
g++ -c leftHeap.h leftHeap.cpp
skewHeap.o: skewHeap.h skewHeap.cpp
g++ -c skewHeap.h skewHeap.cpp
clean:
rm lab10 *.o
und nur um extra Gründliche ich habe auch versucht ein minimalistisches makefile
makefile (2)
test:
g++ minHeap.h leftHeap.h skewHeap.h comparison.cpp minHeap.cpp leftHeap.cpp skewHeap.cpp -o lab10
clean:
rm lab10 *.o
Ich hoffe das ist nicht Informationen zu überlasten. Bitte lassen Sie mich wissen, wenn jemand eine Idee hat, auf dieses. Ich habe schaute auf die andere g++ "nicht der name ein geben" - Fragen hier (und ein paar volle Seite der google-Suche), aber habe nicht gefunden, was kann für dieses Konto. Dies habe ich den leisen Verdacht, dass es möglicherweise etwas einfacher, hab ich übersehen, aber jede Hilfe wäre sehr geschätzt werden.
Dank!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Blick auf den include-guard gezielt:
#ifdef LEFTHEAP_H
.Dies ist nur ein Tippfehler ist (vorausgesetzt, es ist genau transkribiert):
in leftHeap.h #ifndef