PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C mit GTK


R1d3r
15.09.2011, 19:28
Ich versuche gerade ein c Programm mit GTK programmieren und kann es einfach nicht starten..
Ich benutze die Entwicklungsumgebung eclipse und habe die Anweisung zum Verbinden und das vorinstallierte Programm benutzt und war beide Male erfolglos..:mauer:
Was soll ich tun?


joseph
16.09.2011, 07:16
Machs ohne eclipse. Aber erzähl doch mal wo du hängst, dann kann dir evtl auch einer einen Tipp geben.
Programmierst du unter Unix oder windows?

R1d3r
16.09.2011, 12:34
Ehm also ich hab es nach Anleitung gemacht und mit der bereits vorinstallierten Datei probiert. es kommt folgende Fehlermeldung:
Program file does not exist
C:\Users\Patrick2\workspace\GTK\Debug\GTK.exe not found
C:\Users\Patrick2\workspace\GTK\Debug\GTK.exe not found
C:\Users\Patrick2\workspace\GTK\Debug\GTK.exe not found

not found ws hat das programm für provleme?
in welcher Entwicklungsumgebung soll ichs sonst machen?
Ich programmier unter Windows
Mein derzeit erstelltes programm hab ich GTK genannt falls es da verwechslungen geben sollte

joseph
16.09.2011, 13:11
not found ws hat das programm für provleme?
in welcher Entwicklungsumgebung soll ichs sonst machen?


Versuch das Binary mal direkt zu starten. Ich denke Eclipse verschluckt sich an dem Pfad oder die Datei liegt nicht dort wo es sucht.

R1d3r
16.09.2011, 14:30
Ich kriegs unter eclipse einfach nicgt zum laufen was könnt ich denn für einen anderen Compiler/Entwicklungsumgebung benutzen?
kennt ihr welche die man kostenlos downloadenkan?
wie starte ich das binary direkt? (ich bin noch ein ziemlich anfänger und kenne ich in dem Gebiet Gtk noch nicht so gut aus..)

Ami
16.09.2011, 14:58
Ich würde dir Bloodshed Dev-C++ Raten der ist relativ simpel und Funktioniert einwandfrei.

Rushh0ur
16.09.2011, 15:22
Ich würde dir Bloodshed Dev-C++ Raten der ist relativ simpel und Funktioniert einwandfrei.

Naja ich würde diese IDE nicht unbedingt empfehle, da sie veraltet und etwas Buggy ist, diese stürtzt gerne mal ab.

Ich hab vor ner weile auch diverse GUI-Bibliotheken ausprobiert, daneben GTK, wxWidgets und Qt und muss sagen das Qt (http://qt.nokia.com/products/) in dieser hinsicht für meinen Geschmack eine super verständliche Docu und einfache Tools mit sich bringt.

Wenn du es mal antesten willst, kannst dir ja mal die IDE Qt Creator (http://qt.nokia.com/products/developer-tools) hollen und installieren, diese stellt alles automatisch zum verwenden ein.

Ich persöhnlich nutze von dennen die IDE nicht und arbeite mit Visual Studio 2008 in verbindung der Qt-Bibliothek. Könntest dir eventuell auch das Visual Studio 2008 bzw. das neuere Visual Studio 2010 anschauen.

Zu Eclipse kann ich dir nicht sagen, da ich dass noch nie verwendet habe.

Mfg Rushh0ur

joseph
16.09.2011, 19:02
Also, fange ich mal an. als erstes gehst du in das Verzeichnis C:\Users\Patrick2\workspace\GTK\Debug\ klickst doppelt auf gtk.exe.
Jetzt solltest du dein gestartetes Programm sehen( das GUI) ... oder auch nicht :)

Zur Entwicklungsumgebung kann ich dir nicht wirklich was gutes empfehlen, da ich mit keiner IDE zufrieden war die ich je getestet habe.
Dazu muss ich aber sagen, das Eclipse meine Bedürfnisse ganz gut befriedigt hat. Mein problem mit Eclipse war, das es in Java geschrieben ist, dadurch sehr langsam und auch beim bauen(Eclipse selbst) sehr lange brauchte. Auch musste ich seltsamer weise nach jedem Update alle Plugins neu installieren(das Liegt aber 100% an mir) und hatte manchmal ein Problem mit den Repositories aus denen die Plugins kamen. Den Todesstos hat Eclipse bei mir bekommen als ich gesehen habe das es auch besser geht.
Ich nutze seit langem VIM (ein flexibler Texteditor) und der fetzt. Ich habe nur das was ich brauche und muss während ich ein Programm schreibe nicht die Maus anfassen, wenn ich nicht will. Das war ein wunsch den mir die, bis dahin getesteten IDEs nicht erfüllen konnten. VIM erfordert zwar erstmal ein wenig Konfiguration aber danach hast du was du willst und nicht mehr.

Ich kann dir aber nicht sagen wie kompfortabel VIM unter Windows ist weil ich es nur für kleine Aufgaben unter Windows genutzt habe.

Ich hoffe das hilft dir irgendwie.

R1d3r
17.09.2011, 09:12
Also sobald ich das anklicke fragt mich der Computer mit welchem Programm ich das öffnen will wenn ich GTK angeb startet sich nur die installation..
wenn ich adobe angeb passiert gar nichts wenn ich Java angeb öffnet sich ein schwarzes Fenster dass sich jedoch sofort wieder schließt?
Kann man sich QT kostenlos downloaden? Das programm unterstützt doch ganz andere Befehle.

joseph
17.09.2011, 10:27
könntest du mal deinen source code posten und beschreiben wie du das gebaut hast?

R1d3r
17.09.2011, 18:48
könntest du mal deinen source code posten und beschreiben wie du das gebaut hast?
ööhhhh ja ernis noch nicht ganz fertig aber so weit dass er starten müsste ist er schon:
#include <gtk/gtk.h>
#include <stdlib.h>
#include <time.h>
#include <stdio.h>

GtkWidget *Eingabe;int Zahl, Zufall, Chips = 8;

void button1click(GtkWidget*, gpointer);
void button2click(GtkWidget*, gpointer);
void button3click(GtkWidget*, gpointer);
void combo1click(GtkWidget*, gpointer data);
void combo2click(GtkWidget*, gpointer data);


int main(int argc, char **argv)
{
GtkWidget *Fenster, *Box1, Box2;
GtkWidget *button;
GtkWidget *Anzeige1;
GtkWidget *Anzeige4;
GtkWidget *Anzeige5;
GtkWidget *combo1;
PangoFontDescription *Schrift;

//Zufallsgenerator
srand(time(0)*1000);
Zufall = rand() % 36 + 1;

//Gtk init
gtk_init(&argc, &argv);
Fenster = gtk_window_new(0);
Box2 = gtk_hbox_new(FALSE, 20);
Box1 = gtk_vbox_new(TRUE, 20);
Anzeige1 = gtk_label_new("setze deine Chips");
Anzeige4 = gtk_label_new("Anzahl");
Anzeige5 = gtk_label_new("Deine Chips");
button = gtk_new_button_with_label("->");
Eingabe = gtk_entry_new();
combo1 = gtk_comco_box_new_text();
gtk_combo_box_append_text
(GTK_COMBO_BOX(Popup1), "Erste Hälfte");
gtk_combo_box_append_text
(GTK_COMBO_BOX(Popup1), "Zweite Hälfte");
gtk_combo_box_append_text
(GTK_COMBO_BOX(Popup1), "Erstes Dutzend");
gtk_combo_box_append_text
(GTK_COMBO_BOX(Popup1), "Zweites Dutzend");
gtk_combo_box_append_text
(GTK_COMBO_BOX(Popup1), "drittes Dutzend");

//Schrift und Maße
Schrift = pango_font_description_from_string
("Arial 22");
gtk_widget_modify_font(Eingabe,Schrift);
gtk_widget_set_size_request(Anzeige1, 140, 30);
gtk_widget_set_size_request(Anzeige4, 60, 30);
gtk_widget_set_size_request(Anzeige5, 100, 30);
gtk_widget_set_size_request(Knopf1, 40, 30);
gtk_widget_set_size_request(Popup1, 160, 30);

//Fenster einrichten
gtk_window_set_position(GTK_WINDOW(Fenster),1);
gtk_window_set_default_size
(GTK_WINDOW(Fenster), 700, 500);
gtk_window_set_title
(GTK_wINDOW(Fenster), "Roulette0.1 Beta");

//Box erstellen
gtk_box_pack_start(GTK_BOX(Box1),
Anzeige1, FALSE, FALSE, 0);
gtk_box_pack_start(GTK_BOX(Box),
Popup1, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(Box),
Eingabe, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(Box),
Anzeige4, FALSE, TRUE, 0);
gtk_box_pack_start(GTK_BOX(Box),
Knopf1, FALSE, TRUE, 0);

//Box in Fenster einrichten
gtk_container_set_border_width
(GTK_CONTAINER(Fenster), 50);
gtk_container_add(GTK_CONTAINER(Fenster), Box);

//Callback Funktionen
g_signal_connect_swapped(GTK.OBJECT(Popup1),
"changed", GCALLBACK(Combo1Click),
GTK_OBJECT(Anzeige4, Anzeige5));

//Fenster mit allem zeigen
gtk_widget_show_all (Fenster);

//Warteschleife
gtk_main();
return 0;





}
if und else befehle müssen zwar noch eingefügt werden aber es müsste doch starten oder?
sin auch noch ein paar Fehler drin aber um die kümmer ich mich späater.
Ich glaube ich weiß jetzt vor der Fehler liegt: ich benutze win7 exe dateien haben dort ein weiß-blaues bild und alle Beispieldateien (die auch funktionieren stammen von diesem Dateityp.
DSie von mir geschriebene Datei hat den datetyp Datei und hat ein weißes bild..
es würde warscheinlich schon reichen den Dateityp zu verändern doch wie geht das (ich geh in die 8. Klasse und kenn mich nicht so gut aus wie ihr)?
lg
R1d3r

joseph
17.09.2011, 20:17
Ich glaube ich weiß jetzt vor der Fehler liegt: ich benutze win7 exe dateien haben dort ein weiß-blaues bild und alle Beispieldateien (die auch funktionieren stammen von diesem Dateityp.
DSie von mir geschriebene Datei hat den datetyp Datei und hat ein weißes bild.

Hast du deinen Code denn übersetzt?

R1d3r
17.09.2011, 20:44
Hast du deinen Code denn übersetzt?
I don't know eigentlich nicht ich hab ihn geschrieben und so geschickt wie ich ihn geschrieben hab..
Ich hab jezt mal den Dateityp auf exe verändert aber jetzt hab ich kompatibilitätsprobleme die Anzeigen dass das Programm nicht geöffnet werden kann

joseph
17.09.2011, 22:53
Ich denke du solltest den code Übersetzen. Ich kann dir leider nicht sagen wie du das in Eclipse + Windows hin bekommst, aber evtl ist Eclipse ja richtig eingestellt (ich drücke dir die daumen), dann musst du nur die Schaltfläche compile and run finden (die ist meistens ein Zahnrad und ein Play symbol).
Wenn Eclipse nicht richtig eingerichtet ist wirst du dich evtl mit cygwin (eine Unix emulation für Windows) auseinander setzen müssen. In der cygwin umgebung kannst du, wenn alles richtig installiert und konfiguriert ist den folgenden befehl in deinem Projektverzeichnis ausführen.


cc `pkg-config --libs --cflags gtk+-2.0` -o test.exe dein_source.c


Falls Eclipse nicht ausreicht könnte der folgende link nützlich sein (leider Englisch)

http://www.gtkforums.com/viewtopic.php?t=894

[Ich will ja jetzt nicht anti Windows sein, aber setz dir Lieber eine Linux Maschine in VirtualBox auf, das ist leichter.]

R1d3r
18.09.2011, 17:39
ne unter eclipse geht das nicht hab mir jetzt dev++ runtergeladen und es is richtig gut aber geht immer noch nicht:

#include <gtk/gtk.h>

int main(int argc, char **argv)
{
GtkWidget *fenster;
gtk_init(&argc, &argv);
fenster = gtk_window_new(0);
gtk_window_set_position(GTK_WINDOW(fenster), 1);
gtk_window_set_default_size
(GTK_WINDOW(fenster), 400, 200);
gtk_window_set_title
(GTK_WINDOW(fenster), "Testtest");
gtk_widget_show(fenster);
gtk_main();
return 0;
}

joseph
18.09.2011, 17:41
Dann bist du ja schon mal einen schritt weiter. Was gibt es denn für einen Fehler? Kommt der Fehler beim übersetzen oder erst beim ausführen der EXE?