Проблемы, связанные с библиотеками gstreamer Ubuntu 11.10 - PullRequest
2 голосов
/ 02 декабря 2011

Итак, я начинаю проект, который будет использовать библиотеки gstreamer.Я запускаю тестовый проект из документации gstreamer и получаю следующую ошибку. Эта программа работала правильно на archlinux, но выдает ошибку на ubuntu

gcc `pkg-config --cflags --libs gstreamer-0.10` main.c -o player
/tmp/cciFhGCe.o: In function `main':
main.c:(.text+0x1e): undefined reference to `gst_init'
main.c:(.text+0x36): undefined reference to `gst_version'
collect2: ld returned 1 exit status
make: *** [player] Error 1

Мой код следующий, который я получил из документации gstreamer

#include <stdio.h>
#include <gst/gst.h>

int
main (int   argc,
      char *argv[])
{
  const gchar *nano_str;
  guint major, minor, micro, nano;

  gst_init (&argc, &argv);

  gst_version (&major, &minor, &micro, &nano);

  if (nano == 1)
    nano_str = "(CVS)";
  else if (nano == 2)
    nano_str = "(Prerelease)";
  else
    nano_str = "";

  printf ("This program is linked against GStreamer %d.%d.%d %s\n",
          major, minor, micro, nano_str);

  return 0;
}

и команда, которую я использую для компиляции:

gcc `pkg-config --cflags --libs gstreamer-0.10` main.c -o player

и вывод pkg-config

-pthread -I/usr/include/glib-2.0 -I/usr/lib/x86_64-linux-gnu/glib-2.0/include -I/usr/include/gstreamer-0.10 -I/usr/include/libxml2  -pthread -lgstreamer-0.10 -lgobject-2.0 -lgmodule-2.0 -lxml2 -lgthread-2.0 -lrt -lglib-2.0

1 Ответ

6 голосов
/ 02 декабря 2011

Так что благодаря отличным парням из freenode # gstreamer

В версии gcc для unbuntu были внесены некоторые изменения в порядок операторов pkg-config.

gcc `pkg-config gstreamer-0.10 --cflags` main.c -o player.out `pkg-config gstreamer-0.10 --libs`

Исправлено использование этого форматаэто.

...