QtGstreamer build under Windows

Dmitri Afanasjev adimas at gmail.com
Sat Jun 20 09:05:39 PDT 2015


I have not succeded to run cmake using command-prompt, so i'm using
cmake-gui, to generate MinGw Makefiles.

I have Qt 5.4 which uses mingw located in E:\Qt\5.4\mingw491_32\bin
which is 32bit,

when i use cmake-gui and fill params found from Qt QBS (which is used by Qt
creator for app building):

CMAKE_CXX_COMPILER = E:/Qt/Tools/mingw491_32/bin/g++.exe
CMAKE_C_COMPILER = E:/Qt/Tools/mingw491_32/bin/gcc.exe

cmake tells that *cc1.exe stopper working *with following VS debugger
errors:

'cc1.exe' (Win32): Loaded
'E:\Qt\Tools\mingw491_32\libexec\gcc\i686-w64-mingw32\4.9.1\cc1.exe'.
Module was built without symbols.
'cc1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\ntdll.dll'. Cannot find or
open the PDB file.
'cc1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\kernel32.dll'. Cannot find
or open the PDB file.
'cc1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\KernelBase.dll'. Cannot find
or open the PDB file.
'cc1.exe' (Win32): Loaded 'C:\Windows\SysWOW64\msvcrt.dll'. Cannot find or
open the PDB file.

I have 64-bit Win8.1 should i use 64bit MinGw or standart 32bit which is
used in Qt Creator IDE?

When I use QT 5.4 command prompt (which only set vars set
PATH=E:\Qt\5.4\mingw491_32\bin;E:\Qt\Tools\mingw491_32\bin;%PATH%) and run
following:

*cmake -G "MinGW Makefiles"
-DCMAKE_INSTALL_PREFIX=e:/gstreamer/qt-gstreamer
E:\gstreamer\qt-gstreamer\src* i have following output:

*-- The C compiler identification is GNU 4.9.1*
*-- The CXX compiler identification is GNU 4.9.1*
*-- Check for working C compiler: E:/Qt/Tools/mingw491_32/bin/gcc.exe*
*-- Check for working C compiler: E:/Qt/Tools/mingw491_32/bin/gcc.exe --
works*
*-- Detecting C compiler ABI info*
*-- Detecting C compiler ABI info - done*
*-- Detecting C compile features*
*-- Detecting C compile features - done*
*-- Check for working CXX compiler: E:/Qt/Tools/mingw491_32/bin/g++.exe*
*-- Check for working CXX compiler: E:/Qt/Tools/mingw491_32/bin/g++.exe --
works*
*-- Detecting CXX compiler ABI info*
*-- Detecting CXX compiler ABI info - done*
*-- Detecting CXX compile features*
*-- Detecting CXX compile features - done*
*CMake Warning (dev) at CMakeLists.txt:49 (add_definitions):*
*  Policy CMP0005 is not set: Preprocessor definition values are now
escaped*
*  automatically.  Run "cmake --help-policy CMP0005" for policy details.
Use*
*  the cmake_policy command to set the policy and suppress this warning.*
*This warning is for project developers.  Use -Wno-dev to suppress it.*

*CMake Warning (dev) at CMakeLists.txt:49 (add_definitions):*
*  Policy CMP0005 is not set: Preprocessor definition values are now
escaped*
*  automatically.  Run "cmake --help-policy CMP0005" for policy details.
Use*
*  the cmake_policy command to set the policy and suppress this warning.*
*This warning is for project developers.  Use -Wno-dev to suppress it.*

*CMake Warning (dev) at CMakeLists.txt:49 (add_definitions):*
*  Policy CMP0005 is not set: Preprocessor definition values are now
escaped*
*  automatically.  Run "cmake --help-policy CMP0005" for policy details.
Use*
*  the cmake_policy command to set the policy and suppress this warning.*
*This warning is for project developers.  Use -Wno-dev to suppress it.*

*CMake Error at QGlib/CMakeLists.txt:49 (set_target_properties):*
*  set_target_properties called with incorrect number of arguments.*


*CMake Warning (dev) at QGlib/CMakeLists.txt:52 (target_link_libraries):*
*  Cannot specify link libraries for target "LINK_PRIVATE" which is not
built*
*  by this project.*

*  CMake does not support this but it used to work accidentally and is
being*
*  allowed for compatibility.*

*  Policy CMP0016 is not set: target_link_libraries() reports error if its*
*  only argument is not a target.  Run "cmake --help-policy CMP0016" for*
*  policy details.  Use the cmake_policy command to set the policy and*
*  suppress this warning.*
*This warning is for project developers.  Use -Wno-dev to suppress it.*

*CMake Error at QGlib/CMakeLists.txt:53 (qt4or5_use_modules):*
*  Unknown CMake command "qt4or5_use_modules".*


*CMake Warning (dev) in CMakeLists.txt:*
*  No cmake_minimum_required command is present.  A line of code such as*

*    cmake_minimum_required(VERSION 3.3)*

*  should be added at the top of the file.  The version specified may be
lower*
*  if you wish to support older CMake versions for this project.  For more*
*  information run "cmake --help-policy CMP0000".*
*This warning is for project developers.  Use -Wno-dev to suppress it.*

*-- Configuring incomplete, errors occurred!*
*See also "E:/gstreamer/qt-gstreamer/build/CMakeFiles/CMakeOutput.log".*

I think error found in output listing are aimed to missing
libs/include/plugin paths as cmake.exe command argument?
I see that  *Unknown CMake command "qt4or5_use_modules". and i have *.cmake
modules in E:\gstreamer\qt-gstreamer\cmake\modules*

how it is possible to tell cmake to use folder of qtgstreamer cmake modules?

I have CMake 3.3 binaries installed and bin\ added to the PATH variable

Regards, Dmitri



Regards, Dmitri

сб, 20 июня 2015 г. в 10:38, Ceri Coburn <ceri.coburn at gmail.com>:

> Yes, you need to specify the CMake generator.  "MinGW Makefiles" you will
> need for Windows.  You will also need a GCC version of the Qt 5 SDK
> installed.  Usually Qt will have a command prompt mode that has all the
> environment setup ready.
> On 20 Jun 2015 02:52, "Dmitri Afanasjev" <adimas at gmail.com> wrote:
>
>> Looks like Visual Studio build-way is buggy. I have a lot of places where
>> error below exists:
>>
>> LINK : fatal error LNK1104: cannot open file
>> '..\..\src\QGst\Debug\Qt5GStreamer-1.0.lib'
>> 17>  graphicsvideosurface.cpp
>> 18>E:\gstreamer\1.0\x86_64\include\gstreamer-1.0\gst/gstobject.h(172):
>> error C2079: '_GstObject::lock' uses undefined struct '_GMutex'
>> 18>E:\gstreamer\1.0\x86_64\include\gstreamer-1.0\gst/gstdatetime.h(111):
>> error C2143: syntax error : missing ';' before '*'
>> 18>E:\gstreamer\1.0\x86_64\include\gstreamer-1.0\gst/gstdatetime.h(111):
>> error C4430: missing type specifier - int assumed. Note: C++ does not
>> support default-int
>> 18>E:\gstreamer\1.0\x86_64\include\gstreamer-1.0\gst/gstdatetime.h(113):
>> error C2065: 'dt' : undeclared identifier
>> 18>E:\gstreamer\1.0\x86_64\include\gstreamer-1.0\gst/gstdatetime.h(113):
>> fatal error C1903: unable to recover from previous error(s); stopping
>> compilation
>> 18>  Qt5GStreamerUtils_automoc.cpp
>>
>>
>> * '_GstObject::lock' uses undefined struct '_GMutex' *error if repaired
>> including code below to gst/gstobject.h
>>
>> struct _GMutex
>> {
>>   gpointer p;
>>   guint i[2];
>> };
>>
>> Is there any way to force cmake to create not VS make files but
>> traditional makfile? After generating makefile, I'll try to *make &&
>> make install* as suggested in QtGstreamer lib documentation.
>>
>> What i'm doing wrong?
>>
>> Regards, Dmitri
>>
>>
>>
>>
>>
>> сб, 20 июня 2015 г. в 2:42, Dmitri Afanasjev <adimas at gmail.com>:
>>
>>> I have opened my MS VS Community 2013 and tried to build_all.
>>>
>>> ========== Build: 3 succeeded, 20 failed, 0 up-to-date, 5 skipped
>>> ==========
>>>
>>> I have attached full VS build log
>>>
>>> Regards, Dmitri
>>>
>>> сб, 20 июня 2015 г. в 2:32, Ceri Coburn <ceri.coburn at gmail.com>:
>>>
>>>> Ah, looks like CMake has defaulted to Visual Studio project file for
>>>> building.  Open up the QtGSreamer.sln in Visual Studio and compile.
>>>> On 20 Jun 2015 00:22, "Dmitri Afanasjev" <adimas at gmail.com> wrote:
>>>>
>>>>> Thanks for your reply but ihave no makefile in my build folder. After
>>>>> runing make, it tells that nothing to make. The content of build folder
>>>>> after previous cmake build:
>>>>> E:\gstreamer\qt-gstreamer\build>dir
>>>>>  Volume in drive E is Storage
>>>>>  Volume Serial Number is 958E-92BC
>>>>>
>>>>>  Directory of E:\gstreamer\qt-gstreamer\build
>>>>>
>>>>> 19.06.2015  23:41    <DIR>          .
>>>>> 19.06.2015  23:41    <DIR>          ..
>>>>> 19.06.2015  23:41            79 003 ALL_BUILD.vcxproj
>>>>> 19.06.2015  23:41               280 ALL_BUILD.vcxproj.filters
>>>>> 19.06.2015  23:41            39 377 CMakeCache.txt
>>>>> 19.06.2015  23:41    <DIR>          CMakeFiles
>>>>> 19.06.2015  23:41             1 611 cmake_install.cmake
>>>>> 19.06.2015  23:41               936 cmake_uninstall.cmake
>>>>> 19.06.2015  23:41               327 CTestTestfile.cmake
>>>>> 19.06.2015  23:41            76 513 doc.vcxproj
>>>>> 19.06.2015  23:41               280 doc.vcxproj.filters
>>>>> 19.06.2015  23:41            67 744 Doxyfile
>>>>> 19.06.2015  23:41            80 199 doxygen.vcxproj
>>>>> 19.06.2015  23:41               694 doxygen.vcxproj.filters
>>>>> 19.06.2015  23:41    <DIR>          elements
>>>>> 19.06.2015  23:41    <DIR>          examples
>>>>> 19.06.2015  23:41            11 213 INSTALL.vcxproj
>>>>> 19.06.2015  23:41               522 INSTALL.vcxproj.filters
>>>>> 19.06.2015  23:41            30 793 QtGStreamer.sln
>>>>> 19.06.2015  23:41            11 033 RUN_TESTS.vcxproj
>>>>> 19.06.2015  23:41               524 RUN_TESTS.vcxproj.filters
>>>>> 19.06.2015  23:41    <DIR>          src
>>>>> 19.06.2015  23:41            80 269 uninstall.vcxproj
>>>>> 19.06.2015  23:41               698 uninstall.vcxproj.filters
>>>>> 19.06.2015  23:41            63 012 ZERO_CHECK.vcxproj
>>>>> 19.06.2015  23:41               523 ZERO_CHECK.vcxproj.filters
>>>>>               20 File(s)        545 551 bytes
>>>>>                6 Dir(s)  3 138 498 637 824 bytes free
>>>>>
>>>>> I think somtething wrong with previous cmake build with command:
>>>>> *cmake .. -DCMAKE_INSTALL_PREFIX=e:/gstreamer/qt-gstreamer
>>>>> -DQT_VERSION=5 -Wno-dev *because as i said there are some warnings
>>>>> during build
>>>>>
>>>>> Regards, Dmitri
>>>>>
>>>>>
>>>>>
>>>>> сб, 20 июня 2015 г. в 0:10, Ceri Coburn <ceri.coburn at gmail.com>:
>>>>>
>>>>>> The Makefile is generated inside the build folder. If you cd into the
>>>>>> build folder then issue the make command you should be good to go.
>>>>>>  On 19 Jun 2015 21:52, "Dmitri Afanasjev" <adimas at gmail.com> wrote:
>>>>>>
>>>>>>> Hello!
>>>>>>>
>>>>>>> I want to develop Qt application to use with gstreamer1.0
>>>>>>>
>>>>>>> 1. Gstreamer1.0 binaries are installed and PATH is updated works
>>>>>>> fine.
>>>>>>> 2. Downloaded QtGstremer sources from Git (
>>>>>>> https://github.com/detrout/qt-gstreamer) but unable to build it
>>>>>>> correctly. When I do: *cmake ..
>>>>>>> -DCMAKE_INSTALL_PREFIX=e:/gstreamer/qt-gstreamer -DQT_VERSION=5 -Wno-dev *I
>>>>>>> see this outpur:
>>>>>>>
>>>>>>> -- Building for: Visual Studio 12 2013
>>>>>>> -- The C compiler identification is MSVC 18.0.31101.0
>>>>>>> -- The CXX compiler identification is MSVC 18.0.31101.0
>>>>>>> -- Check for working C compiler using: Visual Studio 12 2013
>>>>>>> -- Check for working C compiler using: Visual Studio 12 2013 -- works
>>>>>>> -- Detecting C compiler ABI info
>>>>>>> -- Detecting C compiler ABI info - done
>>>>>>> -- Check for working CXX compiler using: Visual Studio 12 2013
>>>>>>> -- Check for working CXX compiler using: Visual Studio 12 2013 --
>>>>>>> works
>>>>>>> -- Detecting CXX compiler ABI info
>>>>>>> -- Detecting CXX compiler ABI info - done
>>>>>>> -- Detecting CXX compile features
>>>>>>> -- Detecting CXX compile features - done
>>>>>>> -- Using Qt5 (min: 5.0.0)
>>>>>>> -- Found Qt4or5: 1  found components:  Core Gui Widgets OpenGL
>>>>>>> Quick1 Quick2 Qml Test
>>>>>>> -- Boost version: 1.58.0
>>>>>>> -- Found PkgConfig: E:/gstreamer/gtk-bundle_3.6.4/bin/pkg-config.exe
>>>>>>> (found version "0.28")
>>>>>>> -- checking for module 'gstreamer-1.0'
>>>>>>> --   package 'gstreamer-1.0' not found
>>>>>>> -- checking for module 'gstreamer-base-1.0'
>>>>>>> --   package 'gstreamer-base-1.0' not found
>>>>>>> -- Found GSTREAMER_BASE_LIBRARY:
>>>>>>> E:/gstreamer/1.0/x86_64/lib/gstbase-1.0.lib
>>>>>>> -- Found GSTREAMER_BASE_INCLUDE_DIR:
>>>>>>> E:/gstreamer/1.0/x86_64/include/gstreamer-1.0
>>>>>>> -- Found GStreamer: E:/gstreamer/1.0/x86_64/lib/gstreamer-1.0.lib
>>>>>>> (Required is at least version "1.2.0")
>>>>>>> -- checking for module 'gstreamer-plugins-base-1.0'
>>>>>>> --   package 'gstreamer-plugins-base-1.0' not found
>>>>>>> -- checking for module 'gstreamer-app-1.0'
>>>>>>> --   package 'gstreamer-app-1.0' not found
>>>>>>> -- Found GSTREAMER_APP_LIBRARY:
>>>>>>> E:/gstreamer/1.0/x86_64/lib/gstapp-1.0.lib
>>>>>>> -- Found GSTREAMER_APP_INCLUDE_DIR:
>>>>>>> E:/gstreamer/1.0/x86_64/include/gstreamer-1.0
>>>>>>> -- checking for module 'gstreamer-audio-1.0'
>>>>>>> --   package 'gstreamer-audio-1.0' not found
>>>>>>> -- Found GSTREAMER_AUDIO_LIBRARY:
>>>>>>> E:/gstreamer/1.0/x86_64/lib/gstaudio-1.0.lib
>>>>>>> -- Found GSTREAMER_AUDIO_INCLUDE_DIR:
>>>>>>> E:/gstreamer/1.0/x86_64/include/gstreamer-1.0
>>>>>>> -- checking for module 'gstreamer-video-1.0'
>>>>>>> --   package 'gstreamer-video-1.0' not found
>>>>>>> -- Found GSTREAMER_VIDEO_LIBRARY:
>>>>>>> E:/gstreamer/1.0/x86_64/lib/gstvideo-1.0.lib
>>>>>>> -- Found GSTREAMER_VIDEO_INCLUDE_DIR:
>>>>>>> E:/gstreamer/1.0/x86_64/include/gstreamer-1.0
>>>>>>> -- checking for module 'gstreamer-pbutils-1.0'
>>>>>>> --   package 'gstreamer-pbutils-1.0' not found
>>>>>>> -- Found GSTREAMER_PBUTILS_LIBRARY:
>>>>>>> E:/gstreamer/1.0/x86_64/lib/gstpbutils-1.0.lib
>>>>>>> -- Found GSTREAMER_PBUTILS_INCLUDE_DIR:
>>>>>>> E:/gstreamer/1.0/x86_64/include/gstreamer-1.0
>>>>>>> -- Found GStreamerPluginsBase: TRUE (Required is at least version
>>>>>>> "1.2.0")
>>>>>>> -- Found GLIB2:
>>>>>>> E:/gstreamer/OSSBuild/GStreamer/v0.10.6/sdk/lib/glib-2.0.lib
>>>>>>> -- Found GObject:
>>>>>>> E:/gstreamer/OSSBuild/GStreamer/v0.10.6/sdk/include/glib-2.0
>>>>>>> -- Performing Test USE_OPENGLES
>>>>>>> -- Performing Test USE_OPENGLES - Failed
>>>>>>> -- Found OpenGL: opengl32
>>>>>>> -- Found Doxygen: E:/gstreamer/doxygen/bin/doxygen.exe (found
>>>>>>> version "1.8.9.1")
>>>>>>> -- Found DOXYFILE_IN: E:/gstreamer/qt-gstreamer/Doxyfile.in
>>>>>>>
>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>> -- The following external packages were located on your system.
>>>>>>> -- This installation will have the extra features provided by these
>>>>>>> packages.
>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>    * Qt - Required for building everything
>>>>>>>    * QtOpenGL - Required for OpenGL acceleration in qtvideosink and
>>>>>>> QtGStreamerUi
>>>>>>>    * QtQuick1 (QtDeclarative) - Required for building QtQuick1
>>>>>>> support
>>>>>>>    * QtQuick2 (QtQuick) - Required for building QtQuick2 support
>>>>>>>    * QtQml - Required for building QtQuick2 support
>>>>>>>    * Boost - Required for building QtGLib
>>>>>>>    * GStreamer - Required to build QtGStreamer
>>>>>>>    * GStreamer base library - Used for building the qt5videosink
>>>>>>> element
>>>>>>>    * GStreamer app library - Required to build QtGStreamerUtils
>>>>>>>    * GStreamer audio library - Required to build QtGStreamer
>>>>>>>    * GStreamer video library - Required to build QtGStreamer
>>>>>>>    * GStreamer pbutils library - Used for building the Discoverer API
>>>>>>>    * GLib - Required to build QtGLib
>>>>>>>    * GObject - Required to build QtGLib
>>>>>>>    * OpenGL - Required for OpenGL rendering support in qt5videosink
>>>>>>>    * Doxygen - Used to generate the API documentation
>>>>>>>
>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>> -- Congratulations! All external packages have been found.
>>>>>>>
>>>>>>> -----------------------------------------------------------------------------
>>>>>>>
>>>>>>> -- Configuring done
>>>>>>> -- Generating done
>>>>>>> -- Build files have been written to: E:/gstreamer/qt-gstreamer/build
>>>>>>> ===================================================
>>>>>>> Seems like build is done well, but i see some warnings in the
>>>>>>> output. Using build procedure described in README i should do make. But i
>>>>>>> cannot do make without .makefile. Are these filed missing due to errors
>>>>>>> listed in output? Is is possible to build Gstreamer1.0 libs for Qt5?
>>>>>>>
>>>>>>> I cannot find any working solution
>>>>>>>
>>>>>>> Please help!
>>>>>>>
>>>>>>> Regards, Dmitri
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> gstreamer-devel mailing list
>>>>>>> gstreamer-devel at lists.freedesktop.org
>>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>>>
>>>>>>> _______________________________________________
>>>>>> gstreamer-devel mailing list
>>>>>> gstreamer-devel at lists.freedesktop.org
>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gstreamer-devel mailing list
>>>>> gstreamer-devel at lists.freedesktop.org
>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>
>>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> gstreamer-devel at lists.freedesktop.org
>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> gstreamer-devel at lists.freedesktop.org
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20150620/b25f18c6/attachment-0001.html>


More information about the gstreamer-devel mailing list