GStreamer: ошибки компиляции, связанные с заголовком gst-interfaces - PullRequest
0 голосов
/ 06 марта 2011

Я относительно новый программист, так что простите, если это довольно глупый вопрос.

Я только что написал программу среднего масштаба, и у меня возникли некоторые проблемы при компиляции.Мои включения выглядят так:

#include <glib.h>
#include <glib-object.h>
#include <X11/Xlib.h>
#include <gdk/gdk.h>
#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <gst/gst.h>
#include <gst/interfaces/xoverlay.h>

Плюс некоторые другие пользовательские заголовочные файлы (два, для пары объектов GObject, которые я использую)

И я пытаюсь использовать следующую командустрока:

gcc -Wall (my source files) -o (my output) `pkg-config --cflags --libs gdk gtk+-2.0 glib-2.0 gobject-2.0 gstreamer-0.10  x11`

Я получаю много ошибок компиляции (более 1000), все они связаны с библиотеками, которые я использую.Большинство из них выглядят так:

/usr/include/glib-2.0/gobject/gtype.h:367: error: expected '=', ',', ';', 'asm' or '__attribute__' before 'typedef'

/usr/include/glib-2.0/gobject/gobject.h:199: error: expected ')' before '*' token

/usr/include/glib-2.0/gobject/gsignal.h:262: error: expected declaration specifiers or '...' before 'GSignalFlags'

И так далее, и так далее.

Любая помощь будет принята с благодарностью.Я уверен, что это какая-то глупая ошибка со ссылками или включениями, но я просто не могу понять это.

Ответы [ 3 ]

3 голосов
/ 06 марта 2011

Посмотрите на самую первую ошибку и игнорируйте остальные.

Одна из возможностей состоит в том, что первая ошибка говорит о том, что один из #include не был найден. Если это так, просто исправьте это, скорее всего, из-за этой проблемы выпадет целая куча ошибок.

Возможно, вам не хватает одного из необходимых модулей в командной строке pkg-config, например gstreamer-interfaces-0.10, возможно, просто предположение.

1 голос
/ 14 марта 2011

Не уверен, поможет ли это, но у меня были те же ошибки.(Я разрабатываю с XCode 3.2.5 для Mac).

Я хотел создать приложение, связанное с моими библиотеками macports / opt / local / lib и / opt / local / include

Я сделал следующее.

  1. В разделе «Цели» дважды щелкните «Целевое приложение»

  2. В разделе «Пути поиска», a.Всегда искать пути пользователя [off] b.Пути поиска в заголовке [добавьте пути к местоположению заголовка] ex./ usr / local / include / x c.Пути поиска в библиотеке [добавьте пути к вашим общим библиотекам]

  3. скомпилируйте и запустите, исправьте ошибки

Если выне уверен, где находятся библиотеки, используйте pkg-config, чтобы найти их.

Использование pkg-config:

pkg-config --cflags

Например: pkg-config --cflags glib-2.0

-I / opt / local / include / glib-2.0 -I / opt / local / lib / glib-2.0 / include -I / opt / local / include

Тогда выможно просмотреть эти каталоги, посмотреть, включена ли отсутствующая зависимость, а затем добавить путь к путям «заголовков» или «библиотек» в разделе «Пути поиска».

Надеюсь, это поможет.

0 голосов
/ 06 марта 2011

Сложно сказать без кода. Но я бы поставил на пропущенную точку с запятой или ошибку в макросе. Это всегда генерирует такие странные сообщения, даже в коде, который вам не принадлежит.

Дважды проверьте свой собственный код, возможно, попробуйте добавить еще флаг отладки, например -W * family (см. GCC )

...