"Qt5GStreamer-1.0 development package not found"



  • Hi, I want to use qt-gstreamer-1.2.0.
    So I installed qt-gstreamer and open qt-gstreamer example "player.pro" in Qt5.5.1.

    And I tried to build it. But I got the message:
    :-1: error: Qt5GStreamer-1.0 development package not found

    player.pro:

    # This is a qmake project file, provided as an example on how to use qmake with QtGStreamer.
    
    TEMPLATE = app
    TARGET = player
    
    # produce nice compilation output
    CONFIG += silent
    
    # Tell qmake to use pkg-config to find QtGStreamer.
    CONFIG += link_pkgconfig
    
    # Now tell qmake to link to QtGStreamer and also use its include path and Cflags.
    contains(QT_VERSION, ^4\\..*) {
      PKGCONFIG += QtGStreamer-1.0 QtGStreamerUi-1.0
    }
    contains(QT_VERSION, ^5\\..*) {
      PKGCONFIG += Qt5GStreamer-1.0 Qt5GStreamerUi-1.0
      QT += widgets
    }
    
    # Recommended if you are using g++ 4.5 or later. Must be removed for other compilers.
    #QMAKE_CXXFLAGS += -std=c++0x
    
    # Recommended, to avoid possible issues with the "emit" keyword
    # You can otherwise also define QT_NO_EMIT, but notice that this is not a documented Qt macro.
    DEFINES += QT_NO_KEYWORDS
    
    # Input
    HEADERS += mediaapp.h player.h
    SOURCES += main.cpp mediaapp.cpp player.cpp
    

    Also, I modified environment variables at .bashrc file:
    export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/home/hoyoung/qt-gstreamer/lib/x86_64-linux-gnu/pkgconfig/:home/hoyoung/Qt5.5.1/5.5/gcc_64/lib/pkgconfig/:/usr/lib/x86_64-linux-gnu/pkgconfig/

    export PKG_CONFIG_LIBDIR=$PKG_CONFIG_LIBDIR:/home/hoyoung/qt-gstreamer/lib/x86_64-linux-gnu/pkgconfig/:/home/hoyoung/Qt5.5.1/5.5/gcc_64/lib/pkgconfig/

    I would appreciate any kind of help.


  • Moderators

    Did you install qt-gstreamer-dev package?



  • @jsulm Yes, I installed it:

    sudo apt-get install gstreamer1.0*
    sudo apt-get install libgstreamer1.0*



  • @jsulm
    And I also installed qt-gstreamer-1.2.0 at ~/qt-gstreamer


  • Lifetime Qt Champion

    Hi,

    Did you tell pkg-config where to find QtGstream .pc files?



  • @SGaist
    There are 'Qt5GStreamer-1.0.pc',
    'Qt5GLib-2.0.pc',
    'Qt5GStreamerQuick-1.0.pc',
    'Qt5GstreamerUi-1.0.pc' and
    'Qt5GstreamerUtils-1.0.pc'
    in '/home/hoyoung/qt-gstreamer/lib/x86_64-linux-gnu/pkgconfig/'



  • I reinstalled Qt5GStreamer.

    'Qt5Gstreamer-1.0.pc' files is now in /usr/local/lib/x86_64-linux/pkgconfig/'.

    I modified my .bashrc file.

    And then, There is not the error message "Qt5GStreamer-1.0 development package not found" any more.

    But other problems appeared. QtCreater couldn't find QGstreamer functions' definition. Like:

    In function `main':
    undefined reference to 'QGst::init(int*, char***);
    In function `Player::Player(QWidget*)':
    undefined reference to `QGst::Ui::VideoWidget::VideoWidget(QWidget*, QFlags<Qt::WindowType>)'
    undefined reference to `QGst::Ui::VideoWidget::~VideoWidget()'
    .
    .
    .
    

  • Moderators

    It's the compiler/linker not QtCreator.
    You do not link your app against QGStreamer libraries or the linker cannot find them.



  • @jsulm Hi, thank you for replying
    Okay, I understand. the errors are link errors.

    I searched google constantly, but I didn't find how to fix it.
    Can you give any idea to sovle it?


  • Lifetime Qt Champion

    IIRC you need something like:

    PKGCONFIG += Qt5GStreamer-1.0 Qt5GLib-2.0
    

    If using QtQuick

    PKGCONFIG += Qt5GStreamerQuick-1.0
    


  • @SGaist Thank you but I tried it already

    Now I'm finding any mistake during install qt gstreamer 1.2.0..


  • Lifetime Qt Champion

    Silly question then, are you sure that the libraries are built for the right architecture ?



  • @SGaist I Think "yes".
    I really don't know why it did it.


  • Lifetime Qt Champion

    Can you check the link line in the compiler output panel to see if the libraries from QtGstreamer are there ?



  • @SGaist

    I checked the compiler output panel, as you said. but I couldn't find the link line.

    This is Compile Output

    Run qmake:

    10:28:45: Running steps for project player...
    10:28:45: Starting: "/home/hoyoung/Qt5.5.1/5.5/gcc_64/bin/qmake" /home/hoyoung/qt-gstreamer-1.2.0/examples/player/player.pro -r -spec linux-g++ CONFIG+=debug -Wall
    WARNING: /home/hoyoung/Qt5.5.1/5.5/gcc_64/mkspecs/features/qt.prf:101: Excess colon in front of opening brace.
    WARNING: /home/hoyoung/Qt5.5.1/5.5/gcc_64/mkspecs/features/qt.prf:244: Excess colon in front of opening brace.
    WARNING: /home/hoyoung/Qt5.5.1/5.5/gcc_64/mkspecs/features/qt.prf:255: Excess colon in front of opening brace.
    10:28:45: The process "/home/hoyoung/Qt5.5.1/5.5/gcc_64/bin/qmake" exited normally.
    10:28:45: Elapsed time: 00:00.
    

    Build:

    10:15:44: Running steps for project player...
    10:15:44: Configuration unchanged, skipping qmake step.
    10:15:44: Starting: "/usr/bin/make" 
    linking player
    main.o: In function `main':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/main.cpp:24: undefined reference to `QGst::init(int*, char***)'
    player.o: In function `Player::Player(QWidget*)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:34: undefined reference to `QGst::Ui::VideoWidget::VideoWidget(QWidget*, QFlags<Qt::WindowType>)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:34: undefined reference to `QGst::Ui::VideoWidget::~VideoWidget()'
    player.o: In function `Player::~Player()':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:44: undefined reference to `QGst::Element::setState(QGst::State)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:45: undefined reference to `QGst::Ui::VideoWidget::stopPipelineWatch()'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:41: undefined reference to `QGst::Ui::VideoWidget::~VideoWidget()'
    player.o: In function `Player::setUri(QString const&)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:59: undefined reference to `QGst::ElementFactory::make(char const*, char const*)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:62: undefined reference to `QGst::Ui::VideoWidget::watchPipeline(QGlib::RefPointer<QGst::Pipeline> const&)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:65: undefined reference to `QGst::Pipeline::bus() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:66: undefined reference to `QGst::Bus::addSignalWatch()'
    player.o: In function `Player::position() const':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:83: undefined reference to `QGst::PositionQuery::create(QGst::Format)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:84: undefined reference to `QGst::Element::query(QGlib::RefPointer<QGst::Query> const&)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:85: undefined reference to `QGst::PositionQuery::position() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:85: undefined reference to `QGst::ClockTime::toTime() const'
    player.o: In function `Player::setPosition(QTime const&)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:97: undefined reference to `QGst::ClockTime::fromTime(QTime const&)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:97: undefined reference to `QGst::SeekEvent::create(double, QGst::Format, QFlags<QGst::SeekFlag>, QGst::SeekType, long long, QGst::SeekType, long long)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:99: undefined reference to `QGst::Element::sendEvent(QGlib::RefPointer<QGst::Event> const&)'
    player.o: In function `Player::volume() const':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:109: undefined reference to `QGst::StreamVolume::volume(QGst::StreamVolumeFormat) const'
    player.o: In function `Player::setVolume(int)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:124: undefined reference to `QGst::StreamVolume::setVolume(double, QGst::StreamVolumeFormat)'
    player.o: In function `Player::length() const':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:134: undefined reference to `QGst::DurationQuery::create(QGst::Format)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:135: undefined reference to `QGst::Element::query(QGlib::RefPointer<QGst::Query> const&)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:136: undefined reference to `QGst::DurationQuery::duration() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:136: undefined reference to `QGst::ClockTime::toTime() const'
    player.o: In function `Player::state() const':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:144: undefined reference to `QGst::Element::currentState() const'
    player.o: In function `Player::play()':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:150: undefined reference to `QGst::Element::setState(QGst::State)'
    player.o: In function `Player::pause()':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:157: undefined reference to `QGst::Element::setState(QGst::State)'
    player.o: In function `Player::stop()':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:164: undefined reference to `QGst::Element::setState(QGst::State)'
    player.o: In function `Player::onBusMessage(QGlib::RefPointer<QGst::Message> const&)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:175: undefined reference to `QGst::Message::type() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:180: undefined reference to `QGst::ErrorMessage::error() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:180: undefined reference to `QGlib::operator<<(QDebug, QGlib::Error const&)'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:180: undefined reference to `QGlib::Error::~Error()'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:184: undefined reference to `QGst::Message::source() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:180: undefined reference to `QGlib::Error::~Error()'
    player.o: In function `Player::handlePipelineStateChange(QGlib::RefPointer<QGst::StateChangedMessage> const&)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:195: undefined reference to `QGst::StateChangedMessage::newState() const'
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/../player/player.cpp:202: undefined reference to `QGst::StateChangedMessage::oldState() const'
    player.o: In function `Player::qt_metacast(char const*)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/./moc_player.cpp:132: undefined reference to `QGst::Ui::VideoWidget::qt_metacast(char const*)'
    player.o: In function `Player::qt_metacall(QMetaObject::Call, int, void**)':
    /home/hoyoung/qt-gstreamer-1.2.0/examples/build-player-Desktop_Qt_5_5_1_GCC_64bit-Debug/./moc_player.cpp:137: undefined reference to `QGst::Ui::VideoWidget::qt_metacall(QMetaObject::Call, int, void**)'
    player.o: In function `QGlib::ValueImpl<QString>::set(QGlib::Value&, QString const&)':
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/value.h:454: undefined reference to `QGlib::Value::setData(QGlib::Type, void const*)'
    player.o:(.data.rel.ro+0x0): undefined reference to `QGst::Ui::VideoWidget::staticMetaObject'
    player.o: In function `QGlib::Type QGlib::GetType<QGst::Message>()':
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/type.h:182: undefined reference to `QGlib::GetTypeImpl<QGst::Message>::operator QGlib::Type()'
    player.o: In function `QGlib::Type QGlib::GetType<QGst::StreamVolume>()':
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/type.h:182: undefined reference to `QGlib::GetTypeImpl<QGst::StreamVolume>::operator QGlib::Type()'
    player.o: In function `bool QGlib::connect<Player, void, QGlib::RefPointer<QGst::Message> const&>(void*, char const*, Player*, void (Player::*)(QGlib::RefPointer<QGst::Message> const&), QFlags<QGlib::ConnectFlag>)':
    /usr/local/include/Qt5GStreamer/QGlib/connectimpl.h:197: undefined reference to `QGlib::Private::connect(void*, char const*, QGlib::Quark, void*, QSharedPointer<QGlib::Private::DestroyNotifierIface> const&, unsigned int, QGlib::Private::ClosureDataBase*, QFlags<QGlib::ConnectFlag>)'
    player.o: In function `void QGlib::ObjectBase::setProperty<QString>(char const*, QString const&)':
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:108: undefined reference to `QGlib::ObjectBase::findProperty(char const*) const'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:110: undefined reference to `QGlib::Value::Value()'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:111: undefined reference to `QGlib::ParamSpec::valueType() const'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:111: undefined reference to `QGlib::Value::init(QGlib::Type)'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:113: undefined reference to `QGlib::ObjectBase::setProperty(char const*, QGlib::Value const&)'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:113: undefined reference to `QGlib::Value::~Value()'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/object.h:113: undefined reference to `QGlib::Value::~Value()'
    player.o: In function `QGlib::Private::GetDestroyNotifier<Player, void>::operator QSharedPointer<QGlib::Private::DestroyNotifierIface>()':
    /usr/local/include/Qt5GStreamer/QGlib/connect.h:254: undefined reference to `QGlib::Private::QObjectDestroyNotifier::instance()'
    player.o: In function `QGlib::Private::IfaceDynamicCastImpl<QGst::Pipeline, QGst::StreamVolume, void>::doCast(_GstStreamVolume*)':
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/refpointer.h:408: undefined reference to `QGlib::Type::fromInstance(void*)'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/refpointer.h:408: undefined reference to `QGlib::Type::isA(QGlib::Type) const'
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/refpointer.h:410: undefined reference to `QGlib::Private::wrapInterface(QGlib::Type, void*)'
    player.o:(.data.rel.ro._ZTV6Player[_ZTV6Player]+0x100): undefined reference to `QGst::Ui::VideoWidget::paintEvent(QPaintEvent*)'
    player.o:(.data.rel.ro._ZTIN4QGst7MessageE[_ZTIN4QGst7MessageE]+0x10): undefined reference to `typeinfo for QGst::MiniObject'
    player.o:(.data.rel.ro._ZTI6Player[_ZTI6Player]+0x10): undefined reference to `typeinfo for QGst::Ui::VideoWidget'
    player.o:(.data.rel.ro._ZTIN4QGst7ElementE[_ZTIN4QGst7ElementE]+0x10): undefined reference to `typeinfo for QGst::Object'
    player.o:(.data.rel.ro._ZTIN5QGlib9InterfaceE[_ZTIN5QGlib9InterfaceE]+0x18): undefined reference to `typeinfo for QGlib::ObjectBase'
    player.o: In function `QGlib::ValueImpl<QGlib::RefPointer<QGst::Message> >::get(QGlib::Value const&)':
    /usr/local/include/Qt5GStreamer/QGst/../QGlib/value.h:388: undefined reference to `QGlib::Value::getData(QGlib::Type, void*) const'
    player.o: In function `QGlib::WrapImpl<QGst::Message, void>::wrap(_GstMessage*)':
    /usr/local/include/Qt5GStreamer/QGst/miniobject.h:60: undefined reference to `QGst::Private::wrapMiniObject(void*)'
    collect2: error: ld returned 1 exit status
    make: *** [player] Error 1
    10:15:44: The process "/usr/bin/make" exited with code 2.
    Error while building/deploying project player (kit: Desktop Qt 5.5.1 GCC 64bit)
    When executing step "Make"
    10:15:44: Elapsed time: 00:00.
    

    I checked the "init.h". and I'm trying to find 'GStreamer' library.

    a part of "QGst/Init.h":

        QTGSTREAMER_EXPORT void init(int *argc, char **argv[]);
    
        /*! Clean up any resources created by GStreamer in init().
         *
         * It is normally not needed to call this function in a normal application as the resources
         * will automatically be freed when the program terminates. This function is therefore mostly
         * used by testsuites and other memory profiling tools.
         *
         * After this call GStreamer (including this method) should not be used anymore.
         *
         * \note You need to include <QGst/Init> to use this function.
         */
    


  • Did anybody got the luck to know the reason for:
    "Project ERROR: Package Qt5GStreamerQuick-1.0 not found".

    I have installed: qt-gstreamer-dev package
    Not working even after manually adding PKG_CONFIG_LIBDIR:
    export PKG_CONFIG_LIBDIR=/home/manojsahu/qt-gstreamer-1.2.0/src/QGst/QtGStreamer-1.0.pc.in

    I have also added PKGCONFIG alternatively in .pro file like:
    PKGCONFIG += Qt5GStreamerQuick-1.0
    PKGCONFIG += QtGStreamer-1.0

    Can anybody help to resolve this error.
    I am trying to compile example in below mentioned link:

    https://github.com/detrout/qt-gstreamer/tree/master/examples/qmlplayer


  • Lifetime Qt Champion

    Hi and welcome to devnet,

    It's PKG_CONFIG_PATH that you should modify in order to add new paths to search .pc files.

    Where are you calling export ?



  • I am calling export PKG_CONFIG_PATH in my example code directory.


  • Lifetime Qt Champion

    Are you opening Qt Creator from that terminal ? If not then it won't use the environment variable since it has only been exported in this terminal.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.