"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# 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.
-
Did you install qt-gstreamer-dev package?
-
Hi,
Did you tell pkg-config where to find QtGstream .pc files?
-
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()' . . .
-
It's the compiler/linker not QtCreator.
You do not link your app against QGStreamer libraries or the linker cannot find them. -
It's the compiler/linker not QtCreator.
You do not link your app against QGStreamer libraries or the linker cannot find them. -
IIRC you need something like:
PKGCONFIG += Qt5GStreamer-1.0 Qt5GLib-2.0
If using QtQuick
PKGCONFIG += Qt5GStreamerQuick-1.0
-
IIRC you need something like:
PKGCONFIG += Qt5GStreamer-1.0 Qt5GLib-2.0
If using QtQuick
PKGCONFIG += Qt5GStreamerQuick-1.0
-
Silly question then, are you sure that the libraries are built for the right architecture ?
-
Silly question then, are you sure that the libraries are built for the right architecture ?
-
Can you check the link line in the compiler output panel to see if the libraries from QtGstreamer are there ?
-
Can you check the link line in the compiler output panel to see if the libraries from QtGstreamer are there ?
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.inI have also added PKGCONFIG alternatively in .pro file like:
PKGCONFIG += Qt5GStreamerQuick-1.0
PKGCONFIG += QtGStreamer-1.0Can 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
-
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.
-
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.