Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

[QT-Creator 2.5.2 (basiert auf QT 4.8.2)] Klassen und Header werden geschossen

7 views
Skip to first unread message

Heinz-Mario Frühbeis

unread,
Mar 13, 2013, 5:41:36 AM3/13/13
to
Hallo zusammen!

Der Betreff ist korrekt, denn manchmal schießt mir der QT-Creator eine
Klasse, oder einen Header.

Und zwar kann es vorkommen, daß eine Änderung in einer Klasse nicht mehr
neu kompiliert wird.
Ändere ich z. Bsp. in int main(){} etwas, dann wieder wohl.

Bsp.:
In Klasse K steht "std::cout << "Hallo";". Ändere ich das dann auf
"std::cout << "Hallo1";", dann wird immer noch "Hallo" (anststt
"Hallo1") ausgegeben.
Ändere ich irgendwas in "int main(){}", dann wird "Hallo1" ausgegeben.

Ich muss dann die Klasse/Header löschen und eine neue einfügen
(Quellcode geht dann copy&paste).
Auch, wenn es nnur selten vorkommt, ist das natürlich ein unhaltbarer
Zustand.

Was kann ich jetzt tun? Ein anderes Programm? Welches? Oder welchen Tipp
habt ihr für mich?

Mit Gruß
Heinz-Mario Frühbeis

Christoph Kliemt

unread,
Mar 13, 2013, 3:38:57 PM3/13/13
to
Heinz-Mario Frühbeis <Earl...@web.de> writes:

[...]

> Und zwar kann es vorkommen, daß eine Änderung in einer Klasse nicht
> mehr neu kompiliert wird.
> Ändere ich z. Bsp. in int main(){} etwas, dann wieder wohl.

Das build-system von qt ist einfach nur kaputt und nicht für ernsthafte
Anwendung verwendbar.
Möglichtkeiten: makefiles selber schreiben, oder gleich scons
verwenden.

Um der Frage vorzubeugen: cmake ist vergleichbarer Mist wie qmake.

hth,

Christoph

--
> fortune murphy
Aus Murphy's Gesetze:
Alles was gut beginnt, endet schlecht. Alles was schlecht beginnt,
endet furchtbar.

Heinz-Mario Frühbeis

unread,
Mar 13, 2013, 4:54:16 PM3/13/13
to
Am 13.03.2013 20:38, schrieb Christoph Kliemt:
> Heinz-Mario Frühbeis <Earl...@web.de> writes:
>
> [...]
>
>> Und zwar kann es vorkommen, daß eine Änderung in einer Klasse nicht
>> mehr neu kompiliert wird.
>> Ändere ich z. Bsp. in int main(){} etwas, dann wieder wohl.
>
> Das build-system von qt ist einfach nur kaputt und nicht für ernsthafte
> Anwendung verwendbar.
> Möglichtkeiten: makefiles selber schreiben, oder gleich scons
> verwenden.
>
> Um der Frage vorzubeugen: cmake ist vergleichbarer Mist wie qmake.
>
> hth,
>
> Christoph
>

Und wie sähe dann ein Arbeiten damit aus?
Dann nehme ich z. Bsp. Kate um den Quellcode zu schreiben und dann
scons, per Terminal, zum kompilieren, oder wie?

Oder ich nehme QT-Creator zum Schreiben, und dann cons per Terminal?

Oder wie?

Mit Gruß
Heinz-Mario Frühbeis

Christian Kellermann

unread,
Mar 18, 2013, 4:16:13 AM3/18/13
to
Hallo Heinz-Mario,

Heinz-Mario Frühbeis <Earl...@web.de> writes:

> Hallo zusammen!
>
> Der Betreff ist korrekt, denn manchmal schießt mir der QT-Creator eine
> Klasse, oder einen Header.

Eine Klassendeklaration in einem Header? Oder eine Änderung in einem
.CPP file?

Bei ersterem hoert es sich so an, daß qmake die header nicht direkt als
Abhängigkeit in den Abhängigkeitsgraphen einbaut.

Funktioniert es nach einem "clean build"?

Liebe Grüße,

Christian

Heinz-Mario Frühbeis

unread,
Mar 18, 2013, 7:31:12 AM3/18/13
to
Am 18.03.2013 09:16, schrieb Christian Kellermann:
> Hallo Heinz-Mario,
>
> Heinz-Mario Frühbeis <Earl...@web.de> writes:
>
>> Hallo zusammen!
>>
>> Der Betreff ist korrekt, denn manchmal schießt mir der QT-Creator eine
>> Klasse, oder einen Header.
>
> Eine Klassendeklaration in einem Header? Oder eine Änderung in einem
> .CPP file?

Ich hoffe, daß ich richtig verstehe.
Klasse, oder Header wird dann einfach nicht mehr neu kompiliert nach
einer Änderung, sowohl als auch (WIMRE).
Es ist dann also egal, ob ich in *.h was ändere, oder 'cpp.
Auch wenn ich zum Testen einfach mal einen Fehler einbaue, dann
existiert der Fehler gar nicht, weil nicht neu kompiliert wird.

Erst, wenn ich in "main" was ändere wird ein neues Kompilieren für
entsprechende Klasse/Header angeschoben.

> Bei ersterem hoert es sich so an, daß qmake die header nicht direkt als
> Abhängigkeit in den Abhängigkeitsgraphen einbaut.
>
> Funktioniert es nach einem "clean build"?
>
> Liebe Grüße,
>
> Christian
>

Boh, da fragst du mich was...keine Ahnung, was ein "clean build" ist,
oder wie man das erreicht. (Mit VB6 hatte ich mit "so was" ja nie was
zu tun.)
Kannst du mir aber gerne, wenn es nicht zu viele Umstände macht,
erklären und ich probiere das dann bei nächster Gelegenheit aus. Ich
schaue aber auch noch im Internet (zu "clean build") nach.

Mit Gruß
Heinz-Mario Frühbeis

Christian Kellermann

unread,
Mar 18, 2013, 8:08:14 AM3/18/13
to
Heinz-Mario Frühbeis <Earl...@web.de> writes:

> Am 18.03.2013 09:16, schrieb Christian Kellermann:
>
>> Hallo Heinz-Mario,
>>
>> Heinz-Mario Frühbeis <Earl...@web.de> writes:
>>
>>> Hallo zusammen!
>>>
>>> Der Betreff ist korrekt, denn manchmal schießt mir der QT-Creator eine
>>> Klasse, oder einen Header.
>>
>> Eine Klassendeklaration in einem Header? Oder eine Änderung in einem
>> .CPP file?
>
> Ich hoffe, daß ich richtig verstehe.
> Klasse, oder Header wird dann einfach nicht mehr neu kompiliert nach
> einer Änderung, sowohl als auch (WIMRE).
> Es ist dann also egal, ob ich in *.h was ändere, oder 'cpp.
> Auch wenn ich zum Testen einfach mal einen Fehler einbaue, dann
> existiert der Fehler gar nicht, weil nicht neu kompiliert wird.
>
> Erst, wenn ich in "main" was ändere wird ein neues Kompilieren für
> entsprechende Klasse/Header angeschoben.

Tut mir leid, dann weiß ich auch nicht, was die Ursache sein könnte.

Heinz-Mario Frühbeis

unread,
Mar 18, 2013, 8:13:56 AM3/18/13
to
Trotzdem Danke.
Aber vllt weißt du doch noch, wie man in CodeBlocks _ohne Konsole ein
std::cout zu Gesicht bekommt, ja? Weil, dann könnte ich mich mal mit
CodeBlocks beschäftigen.

Mit Gruß
Heinz-Mario Frühbeis

Christian Kellermann

unread,
Mar 18, 2013, 8:28:35 AM3/18/13
to
Heinz-Mario Frühbeis <Earl...@web.de> writes:

> Aber vllt weißt du doch noch, wie man in CodeBlocks _ohne Konsole ein
> std::cout zu Gesicht bekommt, ja? Weil, dann könnte ich mich mal mit
> CodeBlocks beschäftigen.

Wenn ich mit CodeBlocks ein "leeres Projekt" anlege und darin eine
main.cpp mit folgendem Inhalt speichere


--8<---------------cut here---------------start------------->8---
#include <iostream>

using namespace std;

int main()
{
cout << "Hello world!" << endl;
return 0;
}

--8<---------------cut here---------------end--------------->8---

Und dann dieses Programm kompiliere und laufen lasse, öffnet sich ein
Fenster mit der Ausgabe "Hello World!". Ist das nicht, was du suchst?

Liebe Grüße,

Christian

Heinz-Mario Frühbeis

unread,
Mar 18, 2013, 8:34:37 AM3/18/13
to
Ich glaube nicht, denn du meinst mit "Fenster" sicher ein
Konsolenfenster, ja?
Ich programmiere aber GUI. Heißt, ich erstelle ein neues Projekt und
ändere von "Im Terminal ausführen" nach "GUI".
Und da finde ich, bei CodeBlocks, keine Einstellung, wo dann ein
std::cout eingesehen werden kann.
Bei QT-Creator kann ich das in "Ausgabe der Anwendung" einsehen...und
auch da habe ich ja mein C++-Projekt von "Im Terminal ausführen" auf
"GUI" umgestellt.

Mit Gruß
Heinz-Mario Frühbeis

Christian Kellermann

unread,
Mar 18, 2013, 8:58:58 AM3/18/13
to
Ich nehme an es landet auf stdout deines CodeBlocks Prozesses. Wenn Du
also codeblocks von einem Terminal aus startest sollte es dort zu sehen
sein.

Liebe Grüße,

Christian

Heinz-Mario Frühbeis

unread,
Mar 18, 2013, 11:49:18 AM3/18/13
to
Man kommt bei CodeBlocks also nicht um das Konsolenfenster herum...
Bei Gelegenheit schaue ich mal, wie es sich so arbeiten täte.

Ich bin es einfach, von VB6 her, nicht gewohnt "so'n Brambori" zu
veranstalten [1] und deswegen war eine Frage von mir ("Ob ich denn jetzt
Kate nehmen soll, und dieses scons?") schon ernst gemeint. Nur traue ich
ich mich nicht immer schnell an etwas ran, was mir komplett neu ist.
Zumal ich immer ein bisschen ängstlich bin in der Konsole was
einzugeben, was irgendwas kaputt macht, denn das könnte ich nie wieder
hin biegen und müßte alles neu installieren, was man ja nicht möchte.

Jedenfalls hoffe ich, daß ich dich richtig verstanden habe und
mit Dank für dein Interesse
ein Gruß
Heinz-Mario Frühbeis

[1] Obwohl mir gerade einfällt, daß mir VB6 auch schon mal Klassen
geschossen hat. Nobody is perfect, but me... :)

Heinz-Mario Frühbeis

unread,
Mar 26, 2013, 5:09:57 AM3/26/13
to
Am 18.03.2013 13:58, schrieb Christian Kellermann:
Gestern habe ich mir noch mal ein wenig Zeit genommen und mir
Code::Blocks angetan, aber ich werde einfach nicht warm damit.

Code::Blocks habe ich per Konsolenfenster gestartet >
dann ein Konsolenprojekt erstellt (es wird ja sofort ein "Hallo
Welt"-Projekt daraus) >
dann auf GUI umgestellt >
dann dieses vorab erstellte "Hallo Welt"-Projekt laufen lassen >

Im (bereits offenen) Konsolenfenster kommt _keine Ausgabe von "cout<<
"Hallo Welt!;". Und in Code::Blocks selber finde ich immer noch nichts,
wo man "cout<<" einsehen kann.

Dann habe ich wieder von GUI auf Konsolenfenster umgestellt, um mir
Gedanken zu machen, ob das "erst einmal" stört, wenn "erst einmal" ein
Konsolenfenster auf ist, bis ich die ersten eigenen Fenster erzeugt habe.
Aber da ging kein Konsolenfenster mehr auf :(
Ich weiß nicht, ob es jetzt daran lag, ob Code::Blocks bereits per
Konsole lief.

Aber, das wurde mir jetzt eh alles zu suspekt und ich denke, daß ich
Code::Blocks nicht verwenden werde.

Mit Gruß
Heinz-Mario Frühbeis

0 new messages