2008-09-12 3 views
2

Ich benutze Eclipse als meine IDE für ein C++ Projekt, und ich würde es lieben, mir zu sagen, wo ein bestimmtes Symbol definiert ist und was die Parameter für eine Funktion sind.Wie zwinge ich den C++ - Indexer von Eclipse?

Allerdings gibt es einen Haken: Ich benutze auch Lazy C++, ein Werkzeug, das eine einzige Quelldatei und generiert die .h und die .cpp-Dateien. Diese .lzz-Dateien sehen wie Header aus, aber dieses Tool unterstützt einige sehr milde syntaktische Vorteile, wie das Verschachteln von Namespaces mit einem qualifizierten Namen. Zusätzlich verfügt es über spezielle Tags, die dem Tool mitteilen, wo genau es hingelegt werden soll (im Header oder in der Quelldatei).

Also meine typische SourceFile.lzz sieht wie folgt aus:

$hdr 
#include <iosfwd> 
#include "ProjectA/BaseClass.h" 
$end 

$src 
#include <iostream> 
#include "ProjectB/OtherClass.h" 
$end 

// Forward declarations 
namespace BigScope::ProjectB 
{ 
    class OtherClass; 
} 

namespace BigScope::ProjectA 
{ 
    class MyClass : public ProjectA::BaseClass 
    { 
    void SomeMethod(const ProjectB::OtherClass& Foo) { } 
    } 
} 

Wie Sie sehen, es ist immer noch erkennbar C++, aber mit ein paar Extras.

Aus irgendeinem Grund scheint CDT Indexer nichts zu indizieren, und ich weiß nicht, was falsch ist. In der Indexer-Ansicht zeigt es mir einen leeren Baum, aber sagt mir, dass es ungefähr 15000 Symbole und mehr Zeug hat, von denen ich anscheinend nicht zugreifen kann.

Also hier ist meine Frage: Wie kann ich die Indexer-Ausgabe einige weitere Informationen über das, was es macht, und warum es scheitert, wenn es tut, und kann ich es mehr als nur mit den GUI-zugänglichen Optionen optimieren?

Danke,

Carl

Antwort

2

würde ich mich vorstellen, es ist ein:

  • Eklipse will nicht Nicht-C++ Ressourcen im Baum angezeigt werden (ich habe Probleme gehabt mit diesem)

  • Sie haben nicht "Einstellungen> C/C++> Indexer> Index alle Dateien" aktiviert.

  • Sie wollen lieber das "Full C/C++ Indexer" verwenden, als das "Fast C/C++ Indexer"

+0

Danke! Dieser erste Punkt könnte ein Problem sein. Ich habe die anderen zwei schon gemacht. –

+0

Vielleicht liegt es daran, dass ich eine andere Eclipse-Version (Kepler) verwende, aber kannst du mir sagen, wo ich "Index All Files" aktivieren soll? Ich konnte es nicht finden unter 'Einstellungen> C/C++ Allgemein> Indexer' und wo die Option 'Full C/C++ Indexer' aktiviert werden kann. Vielen Dank – user3085931

1

Das CDT-Parser/Indexer nicht seltsam Erweiterungen erkennt so. Sie können nur Makros auf der Eigenschaftenseite Pfade und Symbole definieren, um den Parser auszutricksen. Versuchen Sie, Makros für $hdr, $end und $src zu erstellen, die leere Körper haben. Auf diese Weise entfernt der Präprozessor sie und der Parser wird sie nicht ersticken.

Verwandte Themen