Fenêtre GTK avec Quartz

J’essaie de faire fonctionner le didacticiel de base-5 du kit de développement logiciel GStreamer sur OSX.

Kit de développement logiciel téléchargé depuis http://gstreamer.freedesktop.org/data/pkg/osx/1.2.4.1/

tutoriels (pour 1.0) de http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/

Je reçois l’erreur suivante

basic-tutorial-5.c:5:10: fatal error: 'gst/video/videooverlay.h' file not found 

quand je cours

 gcc `pkg-config gstreamer-1.0 gtk+-3.0 --cflags --libs` basic-tutorial-5.c -o basic5 

Tous les indicateurs seraient utiles!

Merci.

MODIFIER:

Il existe un gst/video/videooverlay.h dans /local/frameworks/Gstreamer.framework/Headers .

La sortie de pkg-config gstreamer-1.0 gtk+-3.0 --cflags --libs n’inclut pas /Library/Frameworks/Gstreamer.framework/Versions/1.0/Headers

Merci à @Biffen pour avoir utilisé

  gcc `pkg-config --cflags --libs gtk+-3.0` -o basic5 basic-tutorial-5.c -I/Library/Frameworks/Gstreamer.framework/Versions/1.0/Headers -framework GStreamer 

Il y a un peu plus d’action:

  basic-tutorial-5.c:114:17: warning: 'gtk_button_new_from_stock' is deprecated [-Wdeprecated-declarations] play_button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PLAY); ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/gtkbutton.h:103:16: note: 'gtk_button_new_from_stock' declared here GtkWidget* gtk_button_new_from_stock (const gchar *stock_id); ^ basic-tutorial-5.c:114:44: warning: 'GtkStock' is deprecated [-Wdeprecated-declarations] play_button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PLAY); ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/deprecated/gtkstock.h:747:38: note: expanded from macro 'GTK_STOCK_MEDIA_PLAY' #define GTK_STOCK_MEDIA_PLAY ((GtkStock)"gtk-media-play") ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/deprecated/gtkstock.h:107:16: note: 'GtkStock' declared here typedef char * GtkStock; ^ basic-tutorial-5.c:117:18: warning: 'gtk_button_new_from_stock' is deprecated [-Wdeprecated-declarations] pause_button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PAUSE); ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/gtkbutton.h:103:16: note: 'gtk_button_new_from_stock' declared here GtkWidget* gtk_button_new_from_stock (const gchar *stock_id); ^ basic-tutorial-5.c:117:45: warning: 'GtkStock' is deprecated [-Wdeprecated-declarations] pause_button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_PAUSE); ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/deprecated/gtkstock.h:733:38: note: expanded from macro 'GTK_STOCK_MEDIA_PAUSE' #define GTK_STOCK_MEDIA_PAUSE ((GtkStock)"gtk-media-pause") ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/deprecated/gtkstock.h:107:16: note: 'GtkStock' declared here typedef char * GtkStock; ^ basic-tutorial-5.c:120:17: warning: 'gtk_button_new_from_stock' is deprecated [-Wdeprecated-declarations] stop_button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_STOP); ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/gtkbutton.h:103:16: note: 'gtk_button_new_from_stock' declared here GtkWidget* gtk_button_new_from_stock (const gchar *stock_id); ^ basic-tutorial-5.c:120:44: warning: 'GtkStock' is deprecated [-Wdeprecated-declarations] stop_button = gtk_button_new_from_stock (GTK_STOCK_MEDIA_STOP); ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/deprecated/gtkstock.h:799:38: note: expanded from macro 'GTK_STOCK_MEDIA_STOP' #define GTK_STOCK_MEDIA_STOP ((GtkStock)"gtk-media-stop") ^ /usr/local/Cellar/gtk+3/3.12.2/include/gtk-3.0/gtk/deprecated/gtkstock.h:107:16: note: 'GtkStock' declared here typedef char * GtkStock; ^ 6 warnings generated. 

Donc, ça obéit … Cela semble un énorme pas en avant mais toujours pas de cigare …

Lorsque j’essaie de lancer basic5, je reçois:

 (process:73178): GLib-GObject-WARNING **: cannot register existing type 'gchar' ** GLib-GObject:ERROR:gvaluetypes.c:455:_g_value_types_init: assertion failed: (type == G_TYPE_CHAR) Abort trap: 6 

EDIT v2:

Grâce à nemequ, je peux maintenant comstackr avec gcc -o basic5 basic-tutorial-5.c pkg-config –libs –cflags gstreamer-1.0 gstreamer-video-1.0 gtk + -3.0“ et lancer ./basic5 pour obtenir les informations suivantes Erreur:

 Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded! (basic5:77683): Gtk-WARNING **: cannot open display: 

Il semble que le dossier gtk (et d’autres, sans aucun doute) manque dans le dossier /Library/Frameworks/Gstreamer.framework/Versions/1.0/Headers et que l’utilisation de pkg-config.. est une /Library/Frameworks/Gstreamer.framework/Versions/1.0/Headers , peut-être.

Si ./basic5 sur un terminal XQuartz, l’erreur suivante ./basic5 :

 Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded! (basic5:78227): GLib-GIO-ERROR **: No GSettings schemas are installed on the system Trace/BPT trap: 5 

quelqu’un d’autre a une idée?

Pour le problème initial, la solution dépend de votre système, il est donc un peu difficile de vous donner une bonne réponse, mais gst / video / videooverlay.h fait partie du paquet gstreamer-video-1.0 , et non de gstreamer-1.0 .

Cela dit, si vous utilisez le kit de développement GStreamer, conformément à la documentation de celui-ci, vous devez utiliser -framework GStreamer , et non pkg-config.

En ce qui concerne l’erreur que vous voyez sur “ne peut pas enregistrer le type existant”, cela a tendance à se produire lorsque vous essayez d’établir un lien avec deux versions différentes de la même bibliothèque. TBH Je n’ai jamais vu cela se produire avec gchar, mais cela signifie probablement que vous essayez de créer un lien vers deux versions différentes de glib ou de gobject, ce qui est logique: le fichier gtk+-3.0 pkg-config utilisera gobject-2.0 glib-2.0 et gobject-2.0 tant que dépendances et elles sont déjà incluses dans le kit de développement logiciel GStreamer. AFAICT GTK + est également inclus dans le kit de développement GStreamer SDK. Essayez donc de vous débarrasser simplement de la tâche pkg-config:

 gcc -o basic5 basic-tutorial-5.c -I/Library/Frameworks/Gstreamer.framework/Versions/1.0/Headers -framework GStreamer