C & Fenster GTK Config Command not found

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
n4seweis
Beiträge: 14
Registriert: 06.03.2021 16:01:10

C & Fenster GTK Config Command not found

Beitrag von n4seweis » 19.03.2021 11:43:32

Hey,

ich bin jetzt grad dabei mich mit GUI in C zu beschäftigen. und habe das Problem das der gtk-config Befehl nicht gefunden wird.

Wenn ich versuche zu kompilieren kommt das:

Code: Alles auswählen

gcc -Wall -ggdb `gtk-config --cflags` `gtk-config --libs` main.c -o list2101
bash: gtk-config: command not found
bash: gtk-config: command not found
main.c:1:9: fatal error: gtk/gtk.h: No such file or directory
 #include<gtk/gtk.h>
         ^~~~~~~~~~~
compilation terminated.

und hier mein Code für ein einfaches Fenster:

Code: Alles auswählen

#include<gtk/gtk.h>

int main(int argc, char **argv){

GtkApplication *fensterAnwendung;
int status;

fensterAnwendung = gtk_application_new ("gtk.beispiel",G_APPLICATION_FLAGS_NONE);

g_singal_connect(fensterAnwendung,"active",G_CALLBAACK(erstellen), NULL);

status = g_application_run(G_APPLICATION (fensterAnwendung),argc,argv)

g_object_unref (fensterAnwendung);

return status;




}

void erstellen (GtkApplication *fensterAnwendung, gpointer daten){
GtkWidget *fenster;
fenster=gtk_application_window_new(fensterAnwendung);
gtk_window_set_title(GTK_WINDOW (fenster), "Mein erstes Fenster");
gtk_window_set_default_size (GTK_WINDOW (fenster),300,400);
gtk_widget_show_all(fenster);

}
Wäre dankbar für Hilfe!

Benutzeravatar
MSfree
Beiträge: 11450
Registriert: 25.09.2007 19:59:30

Re: C & Fenster GTK Config Command not found

Beitrag von MSfree » 19.03.2021 12:02:52

Ich schlage vor, du suchst dir ein paar aktuellere Programmierbeispiele.

gtk-config ist urururalt und das gibt es in aktuelleren GTK-Versionen nicht mehr. Programmieren lernen anhand von 20 Jahre alten Beispielen, ist nicht wirklich zielführend. Das Netz vergißt aber nichts, und du wirst immer wieder altes Zeug finden.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: C & Fenster GTK Config Command not found

Beitrag von eggy » 19.03.2021 12:23:10

Gewöhn Dir hinter dem #include mal nen Leerzeichen an, das ist ja schrecklich anzusehen.
Generell sinnvolles Einrücken (astyle macht das ganz passabel automagisch, clang-format moderner, gibt noch haufenweise andere Tools aus der Richtung) macht das ganze nicht nur hübscher sondern auch leichter lesbarer und damit schneller verständlich. Suchwort dafür sind Codestyle bzw Coding Guidelines, das geht manchmal in einander über.

https://de.wikipedia.org/wiki/Einr%C3%BCckungsstil
bei C hast du oft K&R, bzw. etwas das darauf aufbaut (z.B. das was bei wikipedia als Sun genannt ist)

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: C & Fenster GTK Config Command not found

Beitrag von eggy » 19.03.2021 15:58:43

Nachtrag zu dem von msfree:
Wenn man mal nicht sicher ist, was man wie einbinden sollte, kann man es mal pkg-config versuchen, das ist zwar auch nicht immer die Lösung für alles, bringt aber oft nen guten Start: bei 3er gtk z.B. so:

Code: Alles auswählen

pkg-config --cflags --libs gtk+-3.0
man kann dessen Ausgabe auch direkt an den Compiler weiterreichen

Code: Alles auswählen

 gcc code.c -o prg `pkg-config --cflags --libs gtk+-3.0` 
wobei ich es doch vorziehen würde zu sehen was passiert, um das dann in nem hübschen kleinen Makefile zu verpacken (@Meillo: make makes most murks much mundgerechter ... oder so ähnlich :mrgreen:)

dakuan
Beiträge: 105
Registriert: 28.04.2011 22:09:39

Re: C & Fenster GTK Config Command not found

Beitrag von dakuan » 19.03.2021 18:37:58

Das Problem mit der glib hatte ich auch schon mal. Da brauchte ich Nachhilfe. Soweit ich das erkennen konnte, liegt das an den Querverweisen innerhalb des Verzeichnisses, sodass man sowohl dem Compiler als auch dem Linker sagen muss, wo er suchen soll.
... um das dann in nem hübschen kleinen Makefile zu verpacken
So habe ich das dann gemacht, aber hübsch ist das auch nicht:

Code: Alles auswählen

#include <openssl/md5.h>
#include <glib.h>           // g_filename_to_uri()
#include <glib/gi18n.h>
#include "make_thumb_name.h"
und dann:

Code: Alles auswählen

...
CXXFLAGS = $(shell fltk-config  --use-images --cxxflags ) -I.
CXXFLAGS += $(shell pkg-config --cflags glib-2.0)
LDFLAGS  = $(shell fltk-config  --use-images --ldflags ) -lcrypto -no-pie
LDSTATIC = $(shell fltk-config  --use-images --ldstaticflags ) -lcrypto -no-pie
LDSTATIC += $(shell pkg-config --libs glib-2.0)
...
Dabei brauche ich nur die Funktion g_filename_to_uri(). Ärgerlich, dass man dafür so viel Aufwand treiben muss. Das ist jetzt C++ und C.

eggy
Beiträge: 3331
Registriert: 10.05.2008 11:23:50

Re: C & Fenster GTK Config Command not found

Beitrag von eggy » 19.03.2021 18:42:14

@dakuan: kennst Du iwyu ?

dakuan
Beiträge: 105
Registriert: 28.04.2011 22:09:39

Re: C & Fenster GTK Config Command not found

Beitrag von dakuan » 19.03.2021 20:08:32

Nö, kann aber an meinen schlechten Englischkenntnissen liegen.

Antworten