[linux gtk] kan headerfiles niet vinden

Pagina: 1
Acties:

  • Zynth
  • Registratie: September 2001
  • Laatst online: 07-05 18:31
Ik heb suse8.1 geinstalleerd, en daarbij ook gtk=-devel, omdat daar de headerfiletjes inzitten die ik nodig heb om te programmeren.

Maar nu maakte ik een programmaatje volgens een boek over gtk,
waarin gedaan werd:
#include <gtk/gtk.h>

maar die file kan hij dus niet vinden.
even kort uitgelegd;
/usr/include/gtk-1.2.0/gtk/gtk.h, daar staat de file.
dus als ik: #include <gtk-1.2.0/gtk/gtk.h> doe,
dan vind hij het wel netjes...

maar dan komt het volgende probleem; in gtk.h staan allemaal verwijzingen
naar headerfiles die verwijzen naar: gtk/.....h
Dus nu kan hij DIE weer niet vinden....

iemand enig idee over hoe ik gtk aan de praat kan krijgen??

  • odysseus
  • Registratie: Augustus 2000
  • Laatst online: 13-05 22:46

odysseus

Debian GNU/Linux Sid

Je kunt /usr/include/gtk-1.2.0/ aan je include-path toevoegen (op de command line met een switch voor de compiler als -I/usr/include/gtk-1.2.0, het kan wat permanenter) en het nog eens proberen :).

Leven is het meervoud van lef | In order to make an apple pie from scratch, you must first create the universe.


  • Zynth
  • Registratie: September 2001
  • Laatst online: 07-05 18:31
hmz...

als ik intik:
gcc -Wall -I/usr/include/gtk-1.2 onzin.c -o onzin

dan is dit het begin van de output:
code:
1
2
3
4
5
6
7
8
9
10
In file included from /usr/include/gtk-1.2/gdk/gdk.h:31,
                 from /usr/include/gtk-1.2/gtk/gtk.h:31,
                 from onzin.c:1:
/usr/include/gtk-1.2/gdk/gdktypes.h:33:18: glib.h: No such file or directory
In file included from /usr/include/gtk-1.2/gdk/gdk.h:31,
                 from /usr/include/gtk-1.2/gtk/gtk.h:31,
                 from onzin.c:1:
/usr/include/gtk-1.2/gdk/gdktypes.h:52: parse error before "GdkAtom"
/usr/include/gtk-1.2/gdk/gdktypes.h:52: warning: type defaults to `int' in declaration of `GdkAtom'
/usr/include/gtk-1.2/gdk/gdktypes.h:52: warning: data definition has no type or storage class



een smeuig detail; er komen 4495 regels errors uit.....
dit is niet waar ik op zit te wachten bij mijn eerste linux programma :P

[ Voor 236% gewijzigd door Zynth op 29-01-2003 00:02 ]


  • Zynth
  • Registratie: September 2001
  • Laatst online: 07-05 18:31
Trouwens, als ik het programma gkrellm (http://web.wt.net/~billw/gkrellm/gkrellm.html)
wil compilen, dan krijg ik ook de error dat gtk/gtk.h niet gevonden
kan worden :|
terwijl ik gtk-devel verdorie gewoon van de originele suse cd direct heb meegeinstalleerd bij de installatie...

  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

De error die je gaf klaagt niet over gtk devel files, maar over gdk devel files. Die heb je ook nodig. gdk is een low-level imaging library, waar gtk (een high-level widgetset) gebruik van maakt.

Verwijderd

Hmmm, zoiets heb ik ook edit: onder debian woody, met gtk2. Die problemen die je nu hebt kan je oplossen door een aantal symlinks te maken binnen gccs normale searchpaths. Bijvoorbeeld
ln -s /usr/include/gtk-1.2/gtk /usr/include/gtk

En dat ook voor gdk en de rest wat je nodig hebt.

Echter, wat dit (helaas) wel bij mij heeft opgeleverd is een nieuw probleem. Ik vermoed dat hij hier tijdens het assemblen van over z'n nek gaat. Ik krijg nu dit soort gezeik:


/tmp/ccu8urln.o: In function `create_bbox':
/tmp/ccu8urln.o(.text+0xe): undefined reference to `gtk_frame_new'
/tmp/ccu8urln.o(.text+0x21): undefined reference to `gtk_hbutton_box_new'
/tmp/ccu8urln.o(.text+0x31): undefined reference to `gtk_vbutton_box_new'
/tmp/ccu8urln.o(.text+0x43): undefined reference to `gtk_container_get_type'
/tmp/ccu8urln.o(.text+0x51): undefined reference to `g_type_check_instance_cast'
/tmp/ccu8urln.o(.text+0x5c): undefined reference to `gtk_container_set_border_width'

Het is moeilijk voor te stellen dat dit apparaat niet met symlinks overweg kan. Misschien moet ik eens met hardlinks gaan klooien. Kan je eens kijken of er bij jou hetzelfde gebeurt?

[ Voor 5% gewijzigd door Verwijderd op 29-01-2003 05:08 ]


Verwijderd

Tip 1: Gebruik een IDE (bv Anjuta) en laat die je eerste test progjes genereren.

Tip 2: Gebruik Gtk2 ipv Gtk1 -- Gtk1 is lelijker en moeilijker, Gtk2 is makkelijker en mooier.

Tip 3: Leer omgaan met pkg-config

  • XTerm
  • Registratie: Juli 2001
  • Laatst online: 10-06-2025
Verwijderd schreef op 29 januari 2003 @ 04:32:
Tip 1: Gebruik een IDE (bv Anjuta) en laat die je eerste test progjes genereren.
Nee, leer meteen, en eerst met je develtools omgaan VOOR je begint te programmeren
Tip 2: Gebruik Gtk2 ipv Gtk1 -- Gtk1 is lelijker en moeilijker, Gtk2 is makkelijker en mooier.
Ongefundeerd, GTK2 boedt meer mogelijkheden, maar verschilt slechts in details van GTK1, als z'n boek over GTK1 gaat kan hij gerust daarin programmeren
Tip 3: Leer omgaan met pkg-config
Verder, zoals gezegd, installeer ALLE libraries, en compile met
code:
1
gcc `gtk-config --cflags --libs` -g -Wall mijnprogramma.c

  • Zynth
  • Registratie: September 2001
  • Laatst online: 07-05 18:31
gtk2 zou nou goed moeten werken.
Als ik intik: pkg-config gtk+-2.0 dan krijg ik geen errors meer,
maar alleen maar -I{padnaam} dingen.

maar nu heb ik de volgende error:

gcc: gtk-config --cflags --libs: No such file or directory
onzin.c:1:21: gtk/gtk.h: No such file or directory
onzin.c: In function `main':
..........


-----

Wat kan ik trouwens beter gaan leren, nou ik toch nog moet beginnen ;)
Qt of gtk?
KDevelop en QTDesigner laten QT er namelijk wel uitzien alsof je daar sneller een programma mee schrijft dan met gtk :)

[ Voor 62% gewijzigd door Zynth op 29-01-2003 10:24 ]


Verwijderd

Zynth schreef op 29 januari 2003 @ 09:58:
gtk2 zou nou goed moeten werken.
Als ik intik: pkg-config gtk+-2.0 dan krijg ik geen errors meer,
maar alleen maar -I{padnaam} dingen.
Da's ook de bedoeling.
maar nu heb ik de volgende error:
gcc: gtk-config --cflags --libs: No such file or directory
Gebruik backquotes (`) in plaats van single quotes (').

[ Voor 3% gewijzigd door Verwijderd op 29-01-2003 12:28 ]


  • deadinspace
  • Registratie: Juni 2001
  • Laatst online: 13-05 17:10

deadinspace

The what goes where now?

Verwijderd schreef op 29 januari 2003 @ 12:28:
Gebruik backquotes (`) in plaats van single quotes (').
Nee, gebruik maar gewoon nette command substitution: $(command). Backticks sukken (ze lijken veel te veel op gewone enkele quotes).

Verwijderd

Kan ook...
Pagina: 1