include-File wird nicht gefunden

Verschiedenes zu Qt
Antworten
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

include-File wird nicht gefunden

Beitrag von qtNiko »

hi,
seit dem Umstieg auf Eclipse-Europa (vorher Eclipse3.1.1 und CDT3.0.2) findet der Compiler ein include-File nicht mehr. Die Dateistruktur hat sich seither nicht verändert. Sie sieht folgendermaßen aus:

Code: Alles auswählen

workspace/projectdatei/
                       enthält u.a. Klassendefinition, class1.h sowie die Implementierung, class1.cpp
                       class1.cpp enthält ein #include "head1.h"
Diese Headerdatei findet sich in:
workspace/projectdatei/uverz1/uverz2/
                                                      enthält u.a. eine Headerdatei, head1.h
In dieser Verzeichnisstruktur findet der Compiler die Datei head1.h nicht.

Nur, wenn ich das include so schreibe:

Code: Alles auswählen

#include "uverz1/uverz2/head1.h" 
, wird head1.h auch gefunden. Nun, damit wäre das Problem zwar gelöst, aber ich habe noch mehr solche h-Files und würde den gemeinsamen Pfad dorthin, nämlich workspace/projectdatei/uverz1/uverz2 gerne in die Pfadliste aufnehmen.
Leichter gesagt als getan.
In der Pfadliste unter Properties gibt es "Add Folder/File...", "Add External Include Path..." und "Add Include Path from Workspace...".Weder mit der ersten noch mit der dritten Möglichkeit funktioniert es (die zweite scheidet wohl generell aus).

Frage an Eclipse-Kenner: wie kann ich den Pfad definieren?

übrigens, ich arbeite mit Suse Linux10.1
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

Im Eclipse-Forum erhielt ich den Hinweis, dass ich qmake so konfigurieren solle, dass die include-Dateien gefunden werden. Nun, was und wo muss ich an qmake konfigurieren? :cry:

Mein pro-File enthält die Namen der nicht gefundenen Header-Files mitsamt dem richtigen Pfad. Warum also findet der Compiler sie nicht? :evil:

Verrückterweise konnte ich mit der alten Eclipse-Version3.2.1 und CDT3.0.2 das Programm compilieren - was ist bloß los? Seit einiger Zeit beschäftige ich mich nur noch mit solchen Problemen. Ich komme gar nicht mehr zum Programmieren :cry:

Tipps werden heiß ersehnt
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Eclipse eben :lol:

Und für das qmake - Problem. Ich würde einfach mal in die Doku schauen - aber das macht hier ja eh keiner... :roll:
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

Eclipse eben Laughing
Das klingt nach schlechten Erfahrungen?

Was würdest du empfehlen?
Meine Versuche bisher auf meinem Suse Linux10.1:
- KDE-Develop: habe ich mit Qt4 nicht hingekriegt, will immer mit Qt3 compilieren
- QDevelop : bekomme ich nicht zum Laufen; die Binärversion startet nicht und die zu compilierende Version liefert massenweise Fehlermeldungen
- Eclipse3.1.1 mit CDT3.02: hat gut geklappt; man musste qmake als "external Tool" aufrufen, funktionierte aber
- Eclipse-Europa mit Qt-Integration: für neue Programme funktioniert es gut; hat einige sehr nützliche Verbesserungen; mit der Übernahme alter Programme habe ich erhebliche Probleme, siehe diverse Postings von mir hier
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Ich höre immer nur von Problemen mit Eclipse - keine Ahnung wieso das so gelobt wird.
Ich benutze KDevelop 3.4 (backport von SuSE - Repository) + cmake und habe keine Probleme damit. Und wenn es nur was kleines ist - Kate :)
Unter Windows benutze ich auch nur einen einfachen Editor, zum Debuggen dann aber die MSVC IDE.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
C167
Beiträge: 105
Registriert: 9. Februar 2008 20:30

Beitrag von C167 »

Christian81 hat geschrieben:Ich höre immer nur von Problemen mit Eclipse - keine Ahnung wieso das so gelobt wird.
Ich hab in der Schule Eclipse genutzt (nutzen muessen) als wir Java gelernt haben. Ich habs dann spaeter fuer kleinere PHP- und meine ersten C++-Projekte genutzt. Ich muss zugeben, dass der Funktionsumfang gewaltig ist. Wenn man gescheite Plugins benutzt, tauchen keine Fehler auf und das Teil nimmt einem viel (zu viel) Arbeit ab. Hat man aber einen kleinen Fehler im Java-System oder seiner Konfiguration, wirft das Ding mit Fehlermeldungen um sich, dass man sich erhaengen moechte. Es zerschiesst auch oefers mal seine ganze Konfiguration (.metadata), und da die mit der Zeit immer mehr waechst (cache, was auch immer) kann man die nur komplett loeschen, die Projekte wieder haendisch importieren und alles neu configurieren.
KDevelop ist da wesentlich besser, und auch dass es nicht fuer jeden furz was gibt finde ich da schoen, dann lernt man zumindest, .pro- oder configure-scripte zu schreiben, der Makefile-Generator vom CDT ist naemlich etwas... lassen wir das
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

hi,

jetzt habe ich KDevelop 3.3 von meiner Suse10.1-DVD installiert und ein wenig herumprobiert.
1. KDevelop scheint irgendwie schneller zu sein (Start, Compilieren)

2. In einem kleinen Qt-Programm, das unter Eclipse problemlos lief, meldet der Compiler jedoch einen Fehler. Ich habe innerhalb einer function eine lokale function definiert, was der Compiler anscheinend nicht mag:

Code: Alles auswählen

int get_goodies(FLT_POINT * rLineSamples, int * iSampleCnt, int iMinCnt, int iCol_Lin)
 {
 	int i, j;
         ... diverse weitere Variablenvereinbarungen
 	
 	void mean5(int indxAnf, int ixy, FLT_POINT* rV) {   <--- Fehlermeldung hier
          ... Variablen, Statements
       }
}
Die Fehlermeldung lautet [

Code: Alles auswählen

 ';' expected found '{' 
.
Allerdings stimmt die Spaltennummer nicht. Sie zeigt auf die Stelle des "*" vor rV.

3. KDevelop verwendet für mein Programm QT3-Bibliotheken.
Ich habe unter Projekteinstellungen/C++ Besonderheiten/Qt "Qt in diesem Projekt verwenden" Qt4.x angewählt und den Pfad /usr/local/Trolltech/Qt-4.3.2/lib angegeben. Dennoch erschein im Fenster "Meldungen" ein Text '&& QTDIR='/usr/lib/qt3'. Außerdem habe ich gemäß Help in einer bash-Shell 'QTDIR=/usr/local/Trolltech/Qt-4.3.2' eingetippt und KDevelop neu gestartet - ohne Erfolg (auch mit QTDIR=/usr/local/Trolltech/Qt-4.3.2/lib geht es nicht)

Verwendet KDevelop einen anderen Compiler als Eclipse, siehe Fehlermeldung, die bei Eclipse nicht auftrat?
Wie bringe ich KDevelop dazu, mit Qt4-Bibliotheken zu compilieren?
Beim Importieren bestehender Programme bin ich mir nicht sicher. Ich habe einfach eine Kopie aller Dateien eines Eclipse-Programms in einem neuen Verzeichnis erstellt und "Projekt importieren" gewählt. Ist das der offizielle Weg?
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

hi2,

ich vermisse in KDevelop die Möglichkeit, nach Markieren eines Namens im Quellcode direct zur Deklaration bzw. bei einer function auch zur Implementation zu springen.
Der Punkt "Umschalten zwischen Deklaration/Implementation" nach Klick mit RM auf den Namen bleibt wirkungslos.

Gibt es solch eine Funktion vielleicht in späteren Versionen (ich habe KDevelop 3.3)
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Christian81
Beiträge: 7319
Registriert: 26. August 2004 14:11
Wohnort: Bremen
Kontaktdaten:

Beitrag von Christian81 »

Dein zweites Problem ist einfach kein valid C

Qt3/Qt4 Problem - ich benutze KDevelop 3.4 von den Backports wie ich schon sagte. Außerdem ass ich die .kdevelop - Dateien via cmake erstellen so dass mich irgendwelche Pfade auch nicht interessieren.
MfG Christian

'Funktioniert nicht' ist keine Fehlerbeschreibung
qtNiko
Beiträge: 216
Registriert: 6. April 2007 21:26
Wohnort: München

Beitrag von qtNiko »

Ich habe mit KDevelop3.3 noch mehr Probleme festgestellt.

Ich versuchte, ein größeres Projekt zu compilieren, das ich bisher mit Eclipse bearbeitet hatte (ein anderes als in meinem vorhergehenden Posting genannt). Dazu kopierte ich alle Dateien des Projektverzeichnisses in ein neues Verzeichnis und wählte aus dem Menue "Projekt importieren". Eine *.kdevelop Datei wurde dabei erzeugt, was ich schon mal positiv empfand.
Nachdem ich inzwischen herausbekommen hatte, wie ich den Qt4-Pfad hinkriege, wollte ich mit dem Menuepunkt "Erstellen/Projekt erstellen" nun ein lauffähiges Programm IPC_Sim erstellen.
Im Fenster "Probleme" wurden keine Fehler gemeldet, aber es wurde auch kein Programm erzeugt.
Das Fenster "Meldungen" lieferte:

Code: Alles auswählen

cd '/home/niksch/k_workspace/IPC_Sim' && QTDIR="/usr/local/Trolltech/Qt-4.3.2" IPC_Sim -j1 
/bin/sh: IPC_Sim: command not found
*** Beendet mit Status: 127 ***
Ich verstehe diese Meldung so, dass in meinem Projektverzeichnis im Unterverzeichnis bin/sh das fertige Programm IPC_Sim nicht gefunden wurde, was ja klar ist, da es gar nicht erzeugt wurde. Warum aber wurde es nicht erzeugt?

Außerdem wird mit Klick auf ein *.ui File nicht der Qt4-Designer, sondern der Qt3-Designer aufgerufen, der mein Qt4-ui File natürlich nicht versteht.
Im Menue Einstellungen hängte ich unter "Werzeugmenue" den Qt Assistant ein, womit jedoch der Qt3-Assistant aufgerufen wird.
Alles ist auf Qt3 ausgerichtet! :cry:

Jetzt werde ich mal bei Suse KDevelop 3.4 suchen.
Von cmake hatte ich im Forum öfter mal etwas gelesen. Kann cmake, so wie qmake, auch ein für Qt4 passendes Makefile erzeugen?
Gruß von qtNiko

Core i5 760, GT 240, Suse Linux11.3, Eclipse-CDT-Helios, QT4.4, QT-Integration
Antworten