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
Danke! Dieser erste Punkt könnte ein Problem sein. Ich habe die anderen zwei schon gemacht. –
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