Gstreamer rtsp server linking in Qt Creator

2019-08-30 01:24发布

问题:

I've installed Gstreamer sdk and trying to compile this code:

#include <gst/gst.h>
#include <gst/rtsp-server/rtsp-server.h>

int main (int argc, char *argv[])
{
  GMainLoop *loop;
  GstRTSPServer *server;
  GstRTSPMediaMapping *mapping;
  GstRTSPMediaFactory *factory;

  gst_init (&argc, &argv);
  loop = g_main_loop_new (NULL, FALSE);
  server = gst_rtsp_server_new ();
  mapping = gst_rtsp_server_get_media_mapping (server);
  factory = gst_rtsp_media_factory_new ();
  gst_rtsp_media_factory_set_launch (factory,
        "( videotestsrc is-live=1 ! x264enc ! rtph264pay )");

  gst_rtsp_media_factory_set_shared (factory, TRUE);
  gst_rtsp_media_mapping_add_factory (mapping, "/test", factory);
  g_object_unref (mapping);
  gst_rtsp_server_attach (server, NULL);
  g_main_loop_run (loop);

  return 0;
}

I am having the same error like this question,

In function `main':

test-launch01.c:(.text+0x64): undefined reference to

`gst_rtsp_server_new' test-launch01.c:(.text+0x74): undefined

reference to `gst_rtsp_server_get_media_mapping'

test-launch01.c:(.text+0x7d): undefined reference to

`gst_rtsp_media_factory_new' test-launch01.c:(.text+0x95): undefined

reference to `gst_rtsp_media_factory_set_shared'

test-launch01.c:(.text+0xad): undefined reference to

`gst_rtsp_media_factory_set_launch' test-launch01.c:(.text+0xc9):

undefined reference to `gst_rtsp_media_mapping_add_factory'

test-launch01.c:(.text+0xe9): undefined reference to

`gst_rtsp_server_attach' collect2: ld returned 1 exit status

I am using Qt Creator and here is my .pro file:

QT += core

QT -= gui

TARGET = gstreamer CONFIG += console CONFIG -= app_bundle

CONFIG+=link_pkgconfig

PKGCONFIG += gstreamer-0.10

TEMPLATE = app

SOURCES += main.cpp

INCLUDEPATH += /home/kato/ew-gst-sdk-linux-x86_64-2012.03-0/include/gstreamer-0.10

INCLUDEPATH += /usr/include/glib-2.0 INCLUDEPATH += /usr/lib/x86_64-linux-gnu/glib-2.0/include INCLUDEPATH += /usr/include/libxml2

LIBS += -L/home/kato/ew-gst-sdk-linux-x86_64-2012.03-0/lib \ -lgstreamer-0.10 \ -lgstrtsp-0.10

Am linking to pkg-config gstreamer-rtsp-0.10 --libs correctly ??

I got the same errors.

回答1:

My .pro file is :

    QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Gestion_Flux_Video
TEMPLATE = app


SOURCES += main.cpp\
        mainwindow.cpp \
    streaming.cpp

HEADERS  += mainwindow.h \
    streaming.h

FORMS    += mainwindow.ui

INCLUDEPATH += /opt/gstreamer-sdk/include \
        /opt/gstreamer-sdk/include/gstreamer-0.10 \
        /opt/gstreamer-sdk/lib/glib-2.0/include \
        /opt/gstreamer-sdk/include/glib-2.0 \
        /opt/gstreamer-sdk/include/libxml2

LIBS += -L/opt/gstreamer-sdk/lib -lglib-2.0 \
                                -lgstreamer-0.10 \
                                -lgobject-2.0 \
                                -lgtk-x11-2.0 \
                                -lgstrtsp-0.10 \
                                -lgstapp-0.10 \
        -L/opt/gstreamer-sdk/include/gstreamer-0.10/gst/rtsp-server -lgstrtspserver-0.10

And the compilation works fine for me.