string.h und <string>

Ich versuche, eine Bibliothek zu errichten, die in einem legacy-C++ - Projekt. Plattform power-pc mit gcc compiler.

Der compiler gibt ein build-Fehler ähnlich zu diesem: Fehler: string: Keine solche Datei oder Verzeichnis oder Fehler: vector: Keine solche Datei oder Verzeichnis.

  • Mein Verständnis ist, dass es ist nicht in der Lage, suchen Sie die standard-Bibliothek. Wo sind die standard-Bibliothek-Dateien normalerweise befinden und in welchem format? Ist es *.h oder eine andere? Ich habe gesucht auf internet, aber ich glaube nicht, dass ich es völlig verstehe.

  • Den Teil verwirrend ist, dass eine andere Bibliothek in das gleiche Projekt mit der gleichen Quellcode-Datei baut prefectly in Ordnung. Dies lässt mich vermuten, dass möglicherweise die makefiles für diese beiden Projekte unterschiedlich sind, wo man in der Lage IST zu suchen, die std-lib, andere nicht. Aber ein kurzer Vergleich b/w die beiden wollten sich nicht um offensichtliche Unterschiede. Alle anderen Gedanken auf diese bitte?

  • Schließlich habe ich gerade gelernt, dass string.h ist für c-style-strings und string für C++ - std-lib. Ist es ok, Sie zu mischen, also eine Quelldatei #include string.h, und auch #include string implizit durch wie einige andere Datei? Ich Frage, weil das ist die gleiche situation, in der Datei, die nicht Gebäude.

Dank.

Fehlermeldung:

Kompilieren SOURCE_FILE.cpp

In der Datei enthalten, aus SOURCE_FILE.cpp:3:

HDR_FILE.h:1: error: string: Keine solche Datei oder Verzeichnis

HDR_FILE.h:2: Fehler: vector: Keine solche Datei oder Verzeichnis

CODE IN SOURCE_FILE.cpp

#include <stdlib.h>
#include <string.h>
#include "fileABC.h"

using namespace std;

//Other code

CODE IN HRD_FILE.h

#include <string>
#include <vector>
#include <hdr.h>
#include <hdr-cseq.h>
//... OTHER FILES ETC.
  • Nur um sicher zu sein: Sie kompilieren den C++ - code mit g++ und nicht gcc, richtig?
  • Wo ist der code?
  • bitte zeigen Sie ein abgespeckte version von Ihrem Programm.
  • Es ist das kompilieren mit gcc D. H. powerpc-eabi-gcc, aber es ist der gleiche compiler, der erfolgreich gebaut, die andere Bibliothek, die mit dem gleichen Quellcode-Datei.
  • verwenden g++ zu kompilieren C++, gcc zu kompilieren C. gcc kompiliert C++ - Quellen, wenn es autodetects die Sprache (basierend auf Datei-Endung), aber es wird nicht verbinden Sie es richtig, und wenn es falsch erkennt eine Datei, es wird Ihnen alle Arten von seltsamen Fehler, einschließlich nicht finden, standard gehören.
  • Vielen Dank an alle die sich Zeit nahm, um zu Antworten.

InformationsquelleAutor sw_eng | 2012-02-28
Schreibe einen Kommentar