• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Suche IDE für grösseres Projekt

SuseOpfer

Newbie
Ich suche eine IDE für Linux.

Zunächst mal die Eckdaten des Projekts:
- Sprache C/C++
- Bindings zu Python
- 389 Dateien in 111 Ordnern.
- Benötigt den Aufruf externer Tools zur Compilezeit.
- Odnerstruktur nicht veränderbar (!)
- Erzeugt 1 Executable
- Erzeugt 4 static libs
- Erzeugt 12 (oder mehr) dynamic libaries
- Erstellt unter Windows VC8
- Verwendet als externe Bibliotheken u.a. libxml, xerces, flex, bison, boost, stl, etc.
- IDE sollte Plugin-Fähig sein
- IDE sollte SVN Support haben
- Verwendet Doxygen
- Es MUSS einstellbar sein wo temporäre files während der Kompilierung abgelegt weden
- Es MUSS einstellbar sein wo die vertigt verlinkten Programme abgelegt werden
- Gute Debugging-Möglichkeiten

Die Portierung der ext. Bibs macht kein Problem. Da auch der Systemabhängige Code des Projekts in einer dynlib liegt muss quasi nur diese portiert werden. Daran arbeite ich bereits und das ist so gut wie abgeschlossen.

Ok KDevelop lässt nicht mal zu, dass ich meine Ordnerstruktur übernehme. Gibt es überhaupt eine IDE die Ansatzweise mit den oben genannten Anforderungen zurechtkommt?

Wenn jetzt der Ratschlag kommt 'make' zu verwenden (ich weiss nicht ob ich mich gleich erschiessen soll><) gleich noch eine Frage.
Ich habe ein bisschen mit automake und autoconf rumgespielt. Kann es sein dass diese Tools nicht direkt das Problem der vielen Quellen vereinfachen sondern im Endeffekt am Ende den gleichen Aufwand verursachen?

Die Ordnerstruktur des Projekts sieht ungefähr so aus:

bin/release <- fertige releaseversion kommt da rein
bin/debug <- fertige debugversion kommt da rein

data/ <- diverse daten die das programm lädt, dtd, xml etc.

lib/release <- releaseversion von erzeugten statischen bibliotheken
lib/debug <- debugversion von erzeugten statischen bibliotheken

scripts/[OS]/[IDE]/[SUBROJEKT 1] <- "make" files diverser ide's für unterprojekt 1
.
.
.
scripts/[OS]/[IDE]/[SUBPROJEKT N] <- "make" files diverser ide's für unterprojekt N

include/[subprojekt 1] <- header files für unterprojekt 1
.
.
.
include/[subprojekt N] <- header files diverser für unterprojekt N

src/[subprojekt 1] <- src files diverser für unterprojekt 1
.
.
.
src/[subprojekt N] <- src files diverser für unterprojekt N

doc/ <- erzeugte dokumentatoin

obj/debug <- temporäre (obj files) die bei der Debug-Kompilierung anfallen
obj/release <- temporäre (obj files) die bei der release-Kompilierung anfallen.

Thx
 

abgdf

Guru
Hi,

wozu braucht man unter Linux überhaupt eine IDE ?

Ich hab immer ein paar xterms offen: Eins mit vi und dem Quelltext, eins für g++/make und eins für ./a.out.

Damit geht's doch prima.

(Unter Windows ist das was anderes, weil die "MS-DOS Eingabeaufforderung" doch sehr unkomfortabel ist.)

Viele Grüße
 
@abgdf: Also, ein kleineres Projekt definiere ich jetzt mal als zusammen mindestens 10.000 Codezeilen, die in mehr oder weniger vielen Dateien rumflattern. Unabhängig von der Wahl des OS drängt sich da eine Entwicklungsumgebung auf - Emacs-Anhänger mögen mir verzeihen ;-).

@SuseOpfer: Eine andere Frage möchte ich aber auch noch aufwerfen: Ist die Ordnerstruktur wirklich unumstößlich? Oder möchtest Du ggf. diese Arbeit scheuen? Ein Wechsel der Entwicklungsumgebung zieht halt doch meistens sehr viel Arbeit mich sich ...
 
OP
S

SuseOpfer

Newbie
Das Problem ist nicht das EDITIEREN von Quellcode dafür sind die Tools wirklich ausreichend. Das Problem ist u.a. dass make einen makefile innerhalb der Quellcodeverzeichnisse verlangt - dies ist für dieses Projekt unerwünscht (da der Quellcode extra verwaltet wird für alle Systeme).

Ich habe zwar über non-recursive makes gelesen, habe aber noch keinerlei Informationen über eine konkrete Anwendung gefunden. Prinzipiell wäre dies wohl die beste Lösung doch nach Betrachtung etlicher Projekte deren Dimensionen diesem gleichkommen verwenden diese alle die Strategie einen makefile zu verwenden und dann rekursiv die Verzeichnisse/Unterprojekte mit eigenen makes zu versehen. Ich befürchte, dass ohne IDE bzw. eine einfache Sourcecodeverwaltung es zu erheblichen Fehlern bei anderen Entwicklern kommen könnte.

Desweiteren sind die makesfiles die grössere Projekte verwenden nicht gerade eine Ausgeburt an Übersichtlichkeit - sie sind voll mit eigenen Macros und bsh Kommandos die zu Fehlern führen würden sollte sich die Ordnerstruktur ändern.

Und letztenendes erhöht eine IDE (sofern von ausreichender Qualität) die Produktivität - ansonsten würden sie nicht existieren und Anwendung finden.

Zum Thema Eclipse: ich sammle gerade Informationen. Sofern man den Quellen im Netz (werde das Ding heute abend mal selber installieren) Glauben schenken kann, ist die C/C++ Unterstützung (in welchem Zusammehang, ob Debugger- oder Compiler Support, ob es die Integration der Kommandozeile oder die Quellcodevervollständigung ist - darüber schweigen sich die Autoren dieser Texte bis jetzt dezent aus) bisher nicht gerade perfekt. Sofern E aber die Möglichkeit bietet werde ich E modifzieren so dass es passt und diese Version für unsere Entwickler anbieten.

Das Problem ist immer die Flexibilität - ich brauche z.B. keine intergrierte Dokumentation wenn ich mit ein paar Zeilen in einem Config-File eine beliebige HTML-Seite aufrufen kann. Genauso ist es mir egal welcher Kompiler standardmässig verwendet wird solange ich es ändern kann.

Weitere Ideen willkommen - bitte Thread noch offen halten.
 

cero

Guru
Habe ich auch nie probiert und ich kenne auch den Funktionsumfang nicht, aber
mir fällt noch Anjuta ein.

Edit: http://anjuta.sourceforge.net/
 
OP
S

SuseOpfer

Newbie
@cauchycriterium
Wir können die Ordnerstruktur ändern und sind dazu auch bereit wenn es nicht anders geht. Aber geh mal davon aus wir wollen jetzt das Ding auf OS xyz portieren und weil dort wieder irgendeine IDE eine andere Ordnerstruktur haben will müssten wir jetzt Sourcode zwischen 3 (nein nur 2 weil VC ja jede Ordnerstruktur verwenden kann - ich könnte also die von Linux auch für Windows nehmen) verschiedenen Verzeichnisstrukturen rumkopieren.

Stell dir mal vor was jetzt los wäre wenn das Projekt von Linux nach Windows portiert werden müsste und VC würde sich so anstellen wie manche IDE unter Linux (und ZUSÄTZLICH mit der innovativen und hochflexiblen Kommandozeile von Windows *schauder*).

Zurück zum Thema:
Der Kern des Problems ist nicht die Ordnerstruktur - vielmehr die Tatsache dass wir keine makefiles in jedem Verzeichnis vom Sourcecode rumliegen haben wollen und DAS ist wichtig und DAS ist auch das Problem.

Aber trotzdem - dein Post klang so als wüstest du eine gute IDE? Dann sag mal.

Ich meine es ist doch net so hart:
Was die IDE können soll (darunter dürfte es sich ja nicht mal IDE nennen imho):
- Für jedes Projekt ein beliebiges OBJ Verzeichnis
- Für jedes Projekt ein beliebies BIN/LIB (je nachdem ob dll oder exe oder lib file [ja die heissen hier anders is aber das selbe])
- Für jedes Projekt ein beliebige INCLUDE-PATH und SRC-PATH
- Zuletzt: dass das verdammte buildsystem in der Lage ist seine files aus unserem sourcetree rauszuhalten - alle make/sln/cf/in/cfg/ WAS auch immer files haben beim Quellcode nix verloren.
- Aufruf von Kommandozeilen Zeugs vor- und nach dem build (für flex und bison)

*Gerade beim eclipse laden* - weitere Vorschläge bitte nicht aufhören.
 
OP
S

SuseOpfer

Newbie
So:
ein Problem ist gelöst. Eine IDE habe ich noch nicht gefunden aber dafür was anderes.

Zumindest war ich in der Lage den gesamten Quellcode zu compilieren und eine 2 Stunden lang ist das ganze Projekt unter zum ersten mal unter Linux gelaufen (nein es ist nicht abgestürzt aber ich habe mal neu gebootet).

Wer vielleicht (so wie ich) make zum ****** findet dem lege ich mal bb2 (das BOOST build system) an's Herz (ebenso wie die BOOST Bibliothek generell).

Ich habe mich ganz einfach an einem ziemlich guten Tutorial orientiert das ihr hier finden könnt.

Vielleicht sollte irgendwer das Ding mal in die Linksammlung übernehmen die ihr hier auf der Seite unterhaltet (zusammen mit der BOOST Bibliothek vielleicht).

Suche immernoch nach einer IDE und würde mich auf eure Posts freuen.

Nachtrag:
Unter Beibehaltung unserer gewohnten Ordnerstruktur und unter der besagten Trennung von Quellcode und 'make' files hat der Aufbau eines Buildsystems mit bb2 insgesammt 4 Stunden (mit Kaffeepausen und Einarbeitung in den Syntax des Buildsystems, etc.) gebraucht. Der einzige Punkt an dem ich noch Arbeite ist das seperate Ablegen der obj Files in die Extra-Ordner, ich bin jedoch zuversichtlich das dies in Kürze erledigt ist - <3 boost build - unbedingt angucken.

Selbst für kleine Projekte (und wenn es nur ein file ist) würde ich das Ding verwenden.
 
SuseOpfer schrieb:
Aber trotzdem - dein Post klang so als wüstest du eine gute IDE? Dann sag mal.
Fuer C++ verwende ich, sofern es sich lohnt, KDevelop und bin auch damit recht zufrieden. Auf der Arbeit habe ich ein Java-Projekt mit Eclipse gemacht und war begeistert :). Mal abgesehen von der ewigen Ladezeit ;-).
 
Oben