11 Stimmen

Kompilieren einer C++-Klasse in Xcode: Fehler beim Kompilieren: stl-Vektor

Ich habe eine C++-Klasse, die gut auf Linux mit gcc und auf Widows in Visual Studio kompiliert.

boid.h:

#ifndef BOID_CLASS_HEADER_DEFINES_H
#define BOID_CLASS_HEADER_DEFINES_H
#include "defines.h"

class Boid {

public:
     // Initialize the boid with random position, heading direction and color
     Boid(float SceneRadius,float NormalVel);

     .....
protected:
     ...
};

#endif

und in boid.cpp:

#include "Boid.h"

// Initialize the boid with random position, heading direction and color
Boid::Boid(float SceneRadius,float NormalVel) 
{
    ....
}

Ich erhalte jedoch den folgenden Fehler, wenn ich diesen Code in Xcode kompiliere:

Compiling Boid.h: "error: vector: No such file or directory"

Irgendwelche Ideen? Ich dachte, Sie könnten C/C++-Code nehmen und kompilieren Sie es in Xcode ohne Probleme?

Gracias

EDIT : Defines.h hinzugefügt (auch #endif zum Beispiel hinzugefügt, aber das war im ursprünglichen Code)

EDIT 2 : Ich erhalte einen anderen Fehler, nachdem ich ein paar leere Includes auskommentiert habe: den obigen Vektorfehler.

#ifndef BOID_NAV_DEFINES_H
#define BOID_NAV_DEFINES_H
#include <stdlib.h>
#include <vector>
#include "Vector3d.h"
#include "Point3d.h"
#include "win_layer.h"
#endif

0voto

vdsf Punkte 1578

Ich bin nicht sicher, ob Sie vergessen haben, die Datei einzufügen, aber Sie haben ein unterminiertes #ifndef

Was drin ist definiert.h ?

Bearbeiten: Sie scheinen die Lösung gefunden zu haben. Eine weitere Bemerkung:

#include <stdlib.h>

Für C++, bitte:

#include <cstdlib>

:D

0voto

Diego Sevilla Punkte 27639

Irgendetwas in defines.h beeinflusst die Klassendefinition.

0voto

cbrulak Punkte 14920

Diese Ausgabe hatte zwei Fehler:

  • eines meiner Includes hatte einen Tippfehler, der einen Kompilierfehler verursachte
  • der Fehler "Vektor nicht gefunden" wurde durch die Umwandlung der .m-Dateien in .mm behoben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X