Problems building QtGStreamer release build on Windows

classic Classic list List threaded Threaded
20 messages Options
Reply | Threaded
Open this post in threaded view
|

Problems building QtGStreamer release build on Windows

Chris Boucher
Hi,

I'm trying to build QtGStreamer on Windows against the gstreamer.com
SDK. I've applied the recent git changes (the setenv and
GL_CLAMP_TO_EDGE fixes), followed the instructions on the wiki and it
builds and works fine.

However, when I try to make a release build by adding
-DCMAKE_BUILD_TYPE=Release to the cmake command line, it still
generates debug dlls - the files are the same size and the build log
says "Build started: Project: QtGStreamer, Configuration: Debug
Win32".

Is there some trick I'm missing?

Thanks in advance,
Chris.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Follow up and new problem...

The reason that cmake was ignoring -DCMAKE_BUILD_TYPE=Release was that
by default it generates Visual Studio project files that don't support
this option. The fix was to add -G "NMake Makefiles" (or "NMake
Makefiles JOM").

Unfortunately, the release DLLs contain incomplete import tables...

For example, the debug build of QtGLib-2.0.dll contains (from dumpbin /imports):

    libgobject-2.0-0.dll
              1003FA08 Import Address Table
              1003F460 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

                   40 g_closure_add_finalize_notifier
                   47 g_closure_new_simple
                   48 g_closure_ref
                   4B g_closure_set_marshal

etc, etc.

But the release build only contains:

    libgobject-2.0-0.dll
              10010208 Import Address Table
              10013870 Import Name Table
                     0 time date stamp
                     0 Index of first forwarder reference

with no function entries (the same goes for libglib-2.0-0.dll).

Has anyone successfully made a release build of QtGStreamer for Windows?

I'm using VS2008 and GStreamer SDK 2012.11.

Thanks,
Chris.

On 7 December 2012 14:30, Chris Boucher <[hidden email]> wrote:

> Hi,
>
> I'm trying to build QtGStreamer on Windows against the gstreamer.com
> SDK. I've applied the recent git changes (the setenv and
> GL_CLAMP_TO_EDGE fixes), followed the instructions on the wiki and it
> builds and works fine.
>
> However, when I try to make a release build by adding
> -DCMAKE_BUILD_TYPE=Release to the cmake command line, it still
> generates debug dlls - the files are the same size and the build log
> says "Build started: Project: QtGStreamer, Configuration: Debug
> Win32".
>
> Is there some trick I'm missing?
>
> Thanks in advance,
> Chris.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Dinesh Kumar
In reply to this post by Chris Boucher
Hi Chris,

I have build the QtGstreamer successfully and am using it.

Here are the steps I have followed.

I have used cmake to build the QtGstreamer and the compiler is Visual Studio.

To create release build, please use cmake  --build . --target install --config Release

Regards
Dinesh P






On Fri, Dec 7, 2012 at 8:00 PM, Chris Boucher <[hidden email]> wrote:
Hi,

I'm trying to build QtGStreamer on Windows against the gstreamer.com
SDK. I've applied the recent git changes (the setenv and
GL_CLAMP_TO_EDGE fixes), followed the instructions on the wiki and it
builds and works fine.

However, when I try to make a release build by adding
-DCMAKE_BUILD_TYPE=Release to the cmake command line, it still
generates debug dlls - the files are the same size and the build log
says "Build started: Project: QtGStreamer, Configuration: Debug
Win32".

Is there some trick I'm missing?

Thanks in advance,
Chris.
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Hi Dinesh,

Good to hear that it can work.

I tried your cmake command line, but I get the same results - no
import entries in the QtGStreamer DLLs - which means that they don't
load the gstreamer dlls and so I get a crash (access error) when I
call QGst::init(). All works fine for the debug builds, which is even
more confusing.

Here are the steps I used to build it (the QtGStreamer source is in a
directory called qtgstreamer):

md build-release
cd build-release

cmake -DCMAKE_BUILD_TYPE=Release
-DCMAKE_INSTALL_PREFIX="C:/QtGStreamer/release"
-DQTGSTREAMER_STATIC=OFF -DBOOST_ROOT="C:/boost"
-DCMAKE_PREFIX_PATH="%GSTREAMER_SDK_ROOT_X86%"
-DUSE_GST_PLUGIN_DIR=OFF -DUSE_QT_PLUGIN_DIR=OFF ../qtgstreamer

cmake --build . --target install --config Release

How does that compare to your build?
Which version of Visual Studio are you using?

Many thanks,
Chris.


On 13 December 2012 13:05, Dinesh Kumar <[hidden email]> wrote:

> Hi Chris,
>
> I have build the QtGstreamer successfully and am using it.
>
> Here are the steps I have followed.
>
> I have used cmake to build the QtGstreamer and the compiler is Visual
> Studio.
>
> To create release build, please use cmake  --build . --target install
> --config Release
>
> Regards
> Dinesh P
>
>
>
>
>
>
> On Fri, Dec 7, 2012 at 8:00 PM, Chris Boucher <[hidden email]> wrote:
>>
>> Hi,
>>
>> I'm trying to build QtGStreamer on Windows against the gstreamer.com
>> SDK. I've applied the recent git changes (the setenv and
>> GL_CLAMP_TO_EDGE fixes), followed the instructions on the wiki and it
>> builds and works fine.
>>
>> However, when I try to make a release build by adding
>> -DCMAKE_BUILD_TYPE=Release to the cmake command line, it still
>> generates debug dlls - the files are the same size and the build log
>> says "Build started: Project: QtGStreamer, Configuration: Debug
>> Win32".
>>
>> Is there some trick I'm missing?
>>
>> Thanks in advance,
>> Chris.
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Dinesh Kumar
Can you give me more details?
Are you getting any message like "Build key does not match " ?

Regards
Dinesh P


On Thu, Dec 13, 2012 at 7:13 PM, Chris Boucher <[hidden email]> wrote:
directory called qtgstreamer):


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Dinesh Kumar
I assume you build gstreamer with mingw not with visual studio.

Ideally the concept of release build and debug build is applicable to visual studio compiler only.

If you have  built Qtgstreamer with visual studio and gstreamer with mingw(This is what i have used), only the following libraries should differ for debug and release build.
QtGlib
QtGstreamer
QtGstreamerUi
QtGstreamerUtils
QtGstreamerQML

This is what I have followed.

gstreamer -> mingw32
QtGstreamer-> VisualStudio 2010

In QtGstreamer release build, I was having some problem with the build key in QtGstreamerQML
CMAKE could not set the Build key for the QtGstreamerQML.dll right. I had to rebuild  the QtGstreamerQML with the QT Creator to set the Build key right.

Regards
Dinesh P











On Thu, Dec 13, 2012 at 7:31 PM, Dinesh Kumar <[hidden email]> wrote:
Can you give me more details?
Are you getting any message like "Build key does not match " ?

Regards
Dinesh P


On Thu, Dec 13, 2012 at 7:13 PM, Chris Boucher <[hidden email]> wrote:
directory called qtgstreamer):



_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Hi Dinesh,

I'm using GStreamer SDK (from www.gstreamer.com), which is built with mingw.

I'm then trying to use VS2008 and Qt 4.8.4 to build QtGStreamer
0.10.2. I don't get any build key warnings/errors. It generates all of
the DLLs you mentioned, including QtGStreamerQML (I'm not using this
one, though).

The debug build works fine, the release build produces DLLs with empty
import tables for the gstreamer dlls.

Regards,
Chris.

On 13 December 2012 14:14, Dinesh Kumar <[hidden email]> wrote:

> I assume you build gstreamer with mingw not with visual studio.
>
> Ideally the concept of release build and debug build is applicable to visual
> studio compiler only.
>
> If you have  built Qtgstreamer with visual studio and gstreamer with
> mingw(This is what i have used), only the following libraries should differ
> for debug and release build.
> QtGlib
> QtGstreamer
> QtGstreamerUi
> QtGstreamerUtils
> QtGstreamerQML
>
> This is what I have followed.
>
> gstreamer -> mingw32
> QtGstreamer-> VisualStudio 2010
>
> In QtGstreamer release build, I was having some problem with the build key
> in QtGstreamerQML
> CMAKE could not set the Build key for the QtGstreamerQML.dll right. I had to
> rebuild  the QtGstreamerQML with the QT Creator to set the Build key right.
>
> Regards
> Dinesh P
>
>
>
>
>
>
>
>
>
>
>
>
> On Thu, Dec 13, 2012 at 7:31 PM, Dinesh Kumar <[hidden email]>
> wrote:
>>
>> Can you give me more details?
>> Are you getting any message like "Build key does not match " ?
>>
>> Regards
>> Dinesh P
>>
>>
>> On Thu, Dec 13, 2012 at 7:13 PM, Chris Boucher <[hidden email]>
>> wrote:
>>>
>>> directory called qtgstreamer):
>>
>>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Dinesh Kumar
You  mean the relase build is producing dlls with empty import tables for gstreamer dlls or QtGstreamer dlls?

I am still wondering, why the QtGstreamer release build is producing the gstreamer dlls?

Regards
Dinesh P


On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher <[hidden email]> wrote:
gstreamer dlls.


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Hi Dinesh,

The QtGStreamer release build isn't producing the gstreamer dlls, but
it is linking to them.

The QtGStreamer dlls are linked against the gstreamer ones, which
results in QtGStreamer dlls having an import section listing the
gstreamer dlls and functions required.

If you run "dumpbin /imports QtGlib.dll" (for example) you should see
sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.

In my debug build these sections also list the functions required. In
my release build, the sections exist, but there are no functions
listed.

Thanks,
Chris.

On 13 December 2012 15:04, Dinesh Kumar <[hidden email]> wrote:

> You  mean the relase build is producing dlls with empty import tables for
> gstreamer dlls or QtGstreamer dlls?
>
> I am still wondering, why the QtGstreamer release build is producing the
> gstreamer dlls?
>
> Regards
> Dinesh P
>
>
> On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher <[hidden email]>
> wrote:
>>
>> gstreamer dlls.
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Dinesh Kumar
Hi Chris, 

Thanks for correcting me. 

I have just now checked my QtGlib.dll. I have my import table correct. 

My last suggestion is

Clean the existing build. 
- cmake -G "Visual Studio 8 2005" <other stuffs>
  - cmake --build . --target install --config Release.

Regards
Dinesh P



On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]> wrote:
Hi Dinesh,

The QtGStreamer release build isn't producing the gstreamer dlls, but
it is linking to them.

The QtGStreamer dlls are linked against the gstreamer ones, which
results in QtGStreamer dlls having an import section listing the
gstreamer dlls and functions required.

If you run "dumpbin /imports QtGlib.dll" (for example) you should see
sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.

In my debug build these sections also list the functions required. In
my release build, the sections exist, but there are no functions
listed.

Thanks,
Chris.

On 13 December 2012 15:04, Dinesh Kumar <[hidden email]> wrote:
> You  mean the relase build is producing dlls with empty import tables for
> gstreamer dlls or QtGstreamer dlls?
>
> I am still wondering, why the QtGstreamer release build is producing the
> gstreamer dlls?
>
> Regards
> Dinesh P
>
>
> On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher <[hidden email]>
> wrote:
>>
>> gstreamer dlls.
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Hi Dinesh,

Thanks for confirming that your import tables are correct.

I'm going to try VS2010...

Regards,
Chris.

On 13 December 2012 16:07, Dinesh Kumar <[hidden email]> wrote:

> Hi Chris,
>
> Thanks for correcting me.
>
> I have just now checked my QtGlib.dll. I have my import table correct.
>
> My last suggestion is
>
> Clean the existing build.
> - cmake -G "Visual Studio 8 2005" <other stuffs>
>   - cmake --build . --target install --config Release.
>
> Regards
> Dinesh P
>
>
>
> On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
> wrote:
>>
>> Hi Dinesh,
>>
>> The QtGStreamer release build isn't producing the gstreamer dlls, but
>> it is linking to them.
>>
>> The QtGStreamer dlls are linked against the gstreamer ones, which
>> results in QtGStreamer dlls having an import section listing the
>> gstreamer dlls and functions required.
>>
>> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>>
>> In my debug build these sections also list the functions required. In
>> my release build, the sections exist, but there are no functions
>> listed.
>>
>> Thanks,
>> Chris.
>>
>> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>> wrote:
>> > You  mean the relase build is producing dlls with empty import tables
>> > for
>> > gstreamer dlls or QtGstreamer dlls?
>> >
>> > I am still wondering, why the QtGstreamer release build is producing the
>> > gstreamer dlls?
>> >
>> > Regards
>> > Dinesh P
>> >
>> >
>> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher <[hidden email]>
>> > wrote:
>> >>
>> >> gstreamer dlls.
>> >
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > [hidden email]
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Ola Røer Thorsen
Hi Chris, 

I'm having the exact same problems as you, using visual studio 2010. I reported this on the bugtracker too, btw. https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the unlucky ones. 

If you figure it out, please let me know :-) 

Cheers,
Ola



2012/12/13 Chris Boucher <[hidden email]>
Hi Dinesh,

Thanks for confirming that your import tables are correct.

I'm going to try VS2010...

Regards,
Chris.

On 13 December 2012 16:07, Dinesh Kumar <[hidden email]> wrote:
> Hi Chris,
>
> Thanks for correcting me.
>
> I have just now checked my QtGlib.dll. I have my import table correct.
>
> My last suggestion is
>
> Clean the existing build.
> - cmake -G "Visual Studio 8 2005" <other stuffs>
>   - cmake --build . --target install --config Release.
>
> Regards
> Dinesh P
>
>
>
> On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
> wrote:
>>
>> Hi Dinesh,
>>
>> The QtGStreamer release build isn't producing the gstreamer dlls, but
>> it is linking to them.
>>
>> The QtGStreamer dlls are linked against the gstreamer ones, which
>> results in QtGStreamer dlls having an import section listing the
>> gstreamer dlls and functions required.
>>
>> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>>
>> In my debug build these sections also list the functions required. In
>> my release build, the sections exist, but there are no functions
>> listed.
>>
>> Thanks,
>> Chris.
>>
>> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>> wrote:
>> > You  mean the relase build is producing dlls with empty import tables
>> > for
>> > gstreamer dlls or QtGstreamer dlls?
>> >
>> > I am still wondering, why the QtGstreamer release build is producing the
>> > gstreamer dlls?
>> >
>> > Regards
>> > Dinesh P
>> >
>> >
>> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher <[hidden email]>
>> > wrote:
>> >>
>> >> gstreamer dlls.
>> >
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > [hidden email]
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Hi Ola,

Well, it's good to know I'm not alone 8-)

I've tried VS2010 and it still fails in the release build (empty
imports section),

Which version of GStreamer SDK are you using? I have the latest
(2012.11), but I may give an earlier release a go to see if that
helps.

Regards,
Chris.


On 14 December 2012 08:57, Ola Røer Thorsen <[hidden email]> wrote:

> Hi Chris,
>
> I'm having the exact same problems as you, using visual studio 2010. I
> reported this on the bugtracker too, btw.
> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
> unlucky ones.
>
> If you figure it out, please let me know :-)
>
> Cheers,
> Ola
>
>
>
> 2012/12/13 Chris Boucher <[hidden email]>
>>
>> Hi Dinesh,
>>
>> Thanks for confirming that your import tables are correct.
>>
>> I'm going to try VS2010...
>>
>> Regards,
>> Chris.
>>
>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>> wrote:
>> > Hi Chris,
>> >
>> > Thanks for correcting me.
>> >
>> > I have just now checked my QtGlib.dll. I have my import table correct.
>> >
>> > My last suggestion is
>> >
>> > Clean the existing build.
>> > - cmake -G "Visual Studio 8 2005" <other stuffs>
>> >   - cmake --build . --target install --config Release.
>> >
>> > Regards
>> > Dinesh P
>> >
>> >
>> >
>> > On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>> > wrote:
>> >>
>> >> Hi Dinesh,
>> >>
>> >> The QtGStreamer release build isn't producing the gstreamer dlls, but
>> >> it is linking to them.
>> >>
>> >> The QtGStreamer dlls are linked against the gstreamer ones, which
>> >> results in QtGStreamer dlls having an import section listing the
>> >> gstreamer dlls and functions required.
>> >>
>> >> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>> >> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>> >>
>> >> In my debug build these sections also list the functions required. In
>> >> my release build, the sections exist, but there are no functions
>> >> listed.
>> >>
>> >> Thanks,
>> >> Chris.
>> >>
>> >> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>> >> wrote:
>> >> > You  mean the relase build is producing dlls with empty import tables
>> >> > for
>> >> > gstreamer dlls or QtGstreamer dlls?
>> >> >
>> >> > I am still wondering, why the QtGstreamer release build is producing
>> >> > the
>> >> > gstreamer dlls?
>> >> >
>> >> > Regards
>> >> > Dinesh P
>> >> >
>> >> >
>> >> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>> >> > <[hidden email]>
>> >> > wrote:
>> >> >>
>> >> >> gstreamer dlls.
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > gstreamer-devel mailing list
>> >> > [hidden email]
>> >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >> >
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> [hidden email]
>> >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > [hidden email]
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Ola Røer Thorsen
Hi Chris!

I still have the version 2012.5, "Amazon", installed. So I don't think you need to try any older SDK's. 

Best regards,
Ola 



2012/12/14 Chris Boucher <[hidden email]>
Hi Ola,

Well, it's good to know I'm not alone 8-)

I've tried VS2010 and it still fails in the release build (empty
imports section),

Which version of GStreamer SDK are you using? I have the latest
(2012.11), but I may give an earlier release a go to see if that
helps.

Regards,
Chris.


On 14 December 2012 08:57, Ola Røer Thorsen <[hidden email]> wrote:
> Hi Chris,
>
> I'm having the exact same problems as you, using visual studio 2010. I
> reported this on the bugtracker too, btw.
> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
> unlucky ones.
>
> If you figure it out, please let me know :-)
>
> Cheers,
> Ola
>
>
>
> 2012/12/13 Chris Boucher <[hidden email]>
>>
>> Hi Dinesh,
>>
>> Thanks for confirming that your import tables are correct.
>>
>> I'm going to try VS2010...
>>
>> Regards,
>> Chris.
>>
>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>> wrote:
>> > Hi Chris,
>> >
>> > Thanks for correcting me.
>> >
>> > I have just now checked my QtGlib.dll. I have my import table correct.
>> >
>> > My last suggestion is
>> >
>> > Clean the existing build.
>> > - cmake -G "Visual Studio 8 2005" <other stuffs>
>> >   - cmake --build . --target install --config Release.
>> >
>> > Regards
>> > Dinesh P
>> >
>> >
>> >
>> > On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>> > wrote:
>> >>
>> >> Hi Dinesh,
>> >>
>> >> The QtGStreamer release build isn't producing the gstreamer dlls, but
>> >> it is linking to them.
>> >>
>> >> The QtGStreamer dlls are linked against the gstreamer ones, which
>> >> results in QtGStreamer dlls having an import section listing the
>> >> gstreamer dlls and functions required.
>> >>
>> >> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>> >> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>> >>
>> >> In my debug build these sections also list the functions required. In
>> >> my release build, the sections exist, but there are no functions
>> >> listed.
>> >>
>> >> Thanks,
>> >> Chris.
>> >>
>> >> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>> >> wrote:
>> >> > You  mean the relase build is producing dlls with empty import tables
>> >> > for
>> >> > gstreamer dlls or QtGstreamer dlls?
>> >> >
>> >> > I am still wondering, why the QtGstreamer release build is producing
>> >> > the
>> >> > gstreamer dlls?
>> >> >
>> >> > Regards
>> >> > Dinesh P
>> >> >
>> >> >
>> >> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>> >> > <[hidden email]>
>> >> > wrote:
>> >> >>
>> >> >> gstreamer dlls.
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > gstreamer-devel mailing list
>> >> > [hidden email]
>> >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >> >
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> [hidden email]
>> >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > [hidden email]
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Andoni Morales
In reply to this post by Ola Røer Thorsen
Hi,

On Visual Studio, make sure that you use the property sheets included
in the GStreamer SDK as explained in "Remove the dependency with the
Visual Studio runtime" here:
 include the property sheets:
http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows

Apart from linking to the same CRT used by the DLL's built with
GStreamer, it will also set the the linker option
OptimizeReferences=False, which will fix your issue in the Release
build:
http://cgit.freedesktop.org/gstreamer-sdk/cerbero/tree/data/vs/msvc/common.props#n15

I will update the bug report.

2012/12/14 Ola Røer Thorsen <[hidden email]>:

> Hi Chris,
>
> I'm having the exact same problems as you, using visual studio 2010. I
> reported this on the bugtracker too, btw.
> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
> unlucky ones.
>
> If you figure it out, please let me know :-)
>
> Cheers,
> Ola
>
>
>
> 2012/12/13 Chris Boucher <[hidden email]>
>>
>> Hi Dinesh,
>>
>> Thanks for confirming that your import tables are correct.
>>
>> I'm going to try VS2010...
>>
>> Regards,
>> Chris.
>>
>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>> wrote:
>> > Hi Chris,
>> >
>> > Thanks for correcting me.
>> >
>> > I have just now checked my QtGlib.dll. I have my import table correct.
>> >
>> > My last suggestion is
>> >
>> > Clean the existing build.
>> > - cmake -G "Visual Studio 8 2005" <other stuffs>
>> >   - cmake --build . --target install --config Release.
>> >
>> > Regards
>> > Dinesh P
>> >
>> >
>> >
>> > On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>> > wrote:
>> >>
>> >> Hi Dinesh,
>> >>
>> >> The QtGStreamer release build isn't producing the gstreamer dlls, but
>> >> it is linking to them.
>> >>
>> >> The QtGStreamer dlls are linked against the gstreamer ones, which
>> >> results in QtGStreamer dlls having an import section listing the
>> >> gstreamer dlls and functions required.
>> >>
>> >> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>> >> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>> >>
>> >> In my debug build these sections also list the functions required. In
>> >> my release build, the sections exist, but there are no functions
>> >> listed.
>> >>
>> >> Thanks,
>> >> Chris.
>> >>
>> >> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>> >> wrote:
>> >> > You  mean the relase build is producing dlls with empty import tables
>> >> > for
>> >> > gstreamer dlls or QtGstreamer dlls?
>> >> >
>> >> > I am still wondering, why the QtGstreamer release build is producing
>> >> > the
>> >> > gstreamer dlls?
>> >> >
>> >> > Regards
>> >> > Dinesh P
>> >> >
>> >> >
>> >> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>> >> > <[hidden email]>
>> >> > wrote:
>> >> >>
>> >> >> gstreamer dlls.
>> >> >
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > gstreamer-devel mailing list
>> >> > [hidden email]
>> >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >> >
>> >> _______________________________________________
>> >> gstreamer-devel mailing list
>> >> [hidden email]
>> >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> >
>> >
>> > _______________________________________________
>> > gstreamer-devel mailing list
>> > [hidden email]
>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>> >
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>



--
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Hi Andoni,

Thanks!

QtGStreamer is built using cmake, which I'm far from an expert in, so
I'm not sure how best to use the GStreamer SDK property sheet with it.
However, I modified the top level CMakeLists.txt as follows:

--- CMakeLists.txt (revision 18879)
+++ CMakeLists.txt (working copy)
@@ -108,6 +108,10 @@
     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra
-Wformat-security -Wundef -Wpointer-arith -fno-common")
 endif ()

+if (MSVC)
+    set(CMAKE_SHARED_LINKER_FLAGS "/OPT:NOREF")
+endif()
+
 set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE
STRING "Destination directory for libraries")
 set(INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/QtGStreamer)

and the release DLLs now contain complete import sections. /OPT:NOREF
is the default in debug builds, which explains why it worked there.

I have to say, I find the CRT fix a little odd and possibly
impracticable since I have other libraries I need to link against
(including Qt), but that's not relevant to this thread.

Thanks again,
Chris.

On 14 December 2012 10:27, Andoni Morales <[hidden email]> wrote:

> Hi,
>
> On Visual Studio, make sure that you use the property sheets included
> in the GStreamer SDK as explained in "Remove the dependency with the
> Visual Studio runtime" here:
>  include the property sheets:
> http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows
>
> Apart from linking to the same CRT used by the DLL's built with
> GStreamer, it will also set the the linker option
> OptimizeReferences=False, which will fix your issue in the Release
> build:
> http://cgit.freedesktop.org/gstreamer-sdk/cerbero/tree/data/vs/msvc/common.props#n15
>
> I will update the bug report.
>
> 2012/12/14 Ola Røer Thorsen <[hidden email]>:
>> Hi Chris,
>>
>> I'm having the exact same problems as you, using visual studio 2010. I
>> reported this on the bugtracker too, btw.
>> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
>> unlucky ones.
>>
>> If you figure it out, please let me know :-)
>>
>> Cheers,
>> Ola
>>
>>
>>
>> 2012/12/13 Chris Boucher <[hidden email]>
>>>
>>> Hi Dinesh,
>>>
>>> Thanks for confirming that your import tables are correct.
>>>
>>> I'm going to try VS2010...
>>>
>>> Regards,
>>> Chris.
>>>
>>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>>> wrote:
>>> > Hi Chris,
>>> >
>>> > Thanks for correcting me.
>>> >
>>> > I have just now checked my QtGlib.dll. I have my import table correct.
>>> >
>>> > My last suggestion is
>>> >
>>> > Clean the existing build.
>>> > - cmake -G "Visual Studio 8 2005" <other stuffs>
>>> >   - cmake --build . --target install --config Release.
>>> >
>>> > Regards
>>> > Dinesh P
>>> >
>>> >
>>> >
>>> > On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>>> > wrote:
>>> >>
>>> >> Hi Dinesh,
>>> >>
>>> >> The QtGStreamer release build isn't producing the gstreamer dlls, but
>>> >> it is linking to them.
>>> >>
>>> >> The QtGStreamer dlls are linked against the gstreamer ones, which
>>> >> results in QtGStreamer dlls having an import section listing the
>>> >> gstreamer dlls and functions required.
>>> >>
>>> >> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>>> >> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>>> >>
>>> >> In my debug build these sections also list the functions required. In
>>> >> my release build, the sections exist, but there are no functions
>>> >> listed.
>>> >>
>>> >> Thanks,
>>> >> Chris.
>>> >>
>>> >> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>>> >> wrote:
>>> >> > You  mean the relase build is producing dlls with empty import tables
>>> >> > for
>>> >> > gstreamer dlls or QtGstreamer dlls?
>>> >> >
>>> >> > I am still wondering, why the QtGstreamer release build is producing
>>> >> > the
>>> >> > gstreamer dlls?
>>> >> >
>>> >> > Regards
>>> >> > Dinesh P
>>> >> >
>>> >> >
>>> >> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>>> >> > <[hidden email]>
>>> >> > wrote:
>>> >> >>
>>> >> >> gstreamer dlls.
>>> >> >
>>> >> >
>>> >> >
>>> >> > _______________________________________________
>>> >> > gstreamer-devel mailing list
>>> >> > [hidden email]
>>> >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>> >> >
>>> >> _______________________________________________
>>> >> gstreamer-devel mailing list
>>> >> [hidden email]
>>> >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>> >
>>> >
>>> >
>>> > _______________________________________________
>>> > gstreamer-devel mailing list
>>> > [hidden email]
>>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>> >
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>>
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>
>
>
> --
> Andoni Morales Alastruey
>
> LongoMatch:The Digital Coach
> http://www.longomatch.ylatuya.es
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Ola Røer Thorsen
Thanks, Andoni.

I tried adding the property sheet to the INSTALL project in VS 2010, and
recompiled. Now I get lots of compiler errors instead:

21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(19): error C2146: syntax error : missing ';'
before identifier 'streamoff'
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(19): error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(19): error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(28): error C2143: syntax error : missing ';'
before 'const'
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(28): error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(28): error C4430: missing type specifier - int
assumed. Note: C++ does not support default-int
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(28): error C2146: syntax error : missing ';'
before identifier '_BADOFF'
21>c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(28): error C2373: 'std::streamoff' :
redefinition; different type modifiers
21>          c:\Program Files (x86)\Microsoft Visual Studio
10.0\VC\include\iosfwd(19) : see declaration of 'std::streamoff'

Etc etc etc. Any idea what's going wrong this time?

Chris, are you able to run the example applications in release mode now?

Best regards,
Ola






Den 2012-12-14 12:15, skrev Chris Boucher:

> Hi Andoni,
>
> Thanks!
>
> QtGStreamer is built using cmake, which I'm far from an expert in, so
> I'm not sure how best to use the GStreamer SDK property sheet with it.
> However, I modified the top level CMakeLists.txt as follows:
>
> --- CMakeLists.txt (revision 18879)
> +++ CMakeLists.txt (working copy)
> @@ -108,6 +108,10 @@
>       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra
> -Wformat-security -Wundef -Wpointer-arith -fno-common")
>   endif ()
>
> +if (MSVC)
> +    set(CMAKE_SHARED_LINKER_FLAGS "/OPT:NOREF")
> +endif()
> +
>   set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE
> STRING "Destination directory for libraries")
>   set(INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/QtGStreamer)
>
> and the release DLLs now contain complete import sections. /OPT:NOREF
> is the default in debug builds, which explains why it worked there.
>
> I have to say, I find the CRT fix a little odd and possibly
> impracticable since I have other libraries I need to link against
> (including Qt), but that's not relevant to this thread.
>
> Thanks again,
> Chris.
>
> On 14 December 2012 10:27, Andoni Morales <[hidden email]> wrote:
>> Hi,
>>
>> On Visual Studio, make sure that you use the property sheets included
>> in the GStreamer SDK as explained in "Remove the dependency with the
>> Visual Studio runtime" here:
>>   include the property sheets:
>> http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows
>>
>> Apart from linking to the same CRT used by the DLL's built with
>> GStreamer, it will also set the the linker option
>> OptimizeReferences=False, which will fix your issue in the Release
>> build:
>> http://cgit.freedesktop.org/gstreamer-sdk/cerbero/tree/data/vs/msvc/common.props#n15
>>
>> I will update the bug report.
>>
>> 2012/12/14 Ola Røer Thorsen <[hidden email]>:
>>> Hi Chris,
>>>
>>> I'm having the exact same problems as you, using visual studio 2010. I
>>> reported this on the bugtracker too, btw.
>>> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
>>> unlucky ones.
>>>
>>> If you figure it out, please let me know :-)
>>>
>>> Cheers,
>>> Ola
>>>
>>>
>>>
>>> 2012/12/13 Chris Boucher <[hidden email]>
>>>> Hi Dinesh,
>>>>
>>>> Thanks for confirming that your import tables are correct.
>>>>
>>>> I'm going to try VS2010...
>>>>
>>>> Regards,
>>>> Chris.
>>>>
>>>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>>>> wrote:
>>>>> Hi Chris,
>>>>>
>>>>> Thanks for correcting me.
>>>>>
>>>>> I have just now checked my QtGlib.dll. I have my import table correct.
>>>>>
>>>>> My last suggestion is
>>>>>
>>>>> Clean the existing build.
>>>>> - cmake -G "Visual Studio 8 2005" <other stuffs>
>>>>>    - cmake --build . --target install --config Release.
>>>>>
>>>>> Regards
>>>>> Dinesh P
>>>>>
>>>>>
>>>>>
>>>>> On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>>>>> wrote:
>>>>>> Hi Dinesh,
>>>>>>
>>>>>> The QtGStreamer release build isn't producing the gstreamer dlls, but
>>>>>> it is linking to them.
>>>>>>
>>>>>> The QtGStreamer dlls are linked against the gstreamer ones, which
>>>>>> results in QtGStreamer dlls having an import section listing the
>>>>>> gstreamer dlls and functions required.
>>>>>>
>>>>>> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>>>>>> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>>>>>>
>>>>>> In my debug build these sections also list the functions required. In
>>>>>> my release build, the sections exist, but there are no functions
>>>>>> listed.
>>>>>>
>>>>>> Thanks,
>>>>>> Chris.
>>>>>>
>>>>>> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>>>>>> wrote:
>>>>>>> You  mean the relase build is producing dlls with empty import tables
>>>>>>> for
>>>>>>> gstreamer dlls or QtGstreamer dlls?
>>>>>>>
>>>>>>> I am still wondering, why the QtGstreamer release build is producing
>>>>>>> the
>>>>>>> gstreamer dlls?
>>>>>>>
>>>>>>> Regards
>>>>>>> Dinesh P
>>>>>>>
>>>>>>>
>>>>>>> On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>>>>>>> <[hidden email]>
>>>>>>> wrote:
>>>>>>>> gstreamer dlls.
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> gstreamer-devel mailing list
>>>>>>> [hidden email]
>>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>>>
>>>>>> _______________________________________________
>>>>>> gstreamer-devel mailing list
>>>>>> [hidden email]
>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> gstreamer-devel mailing list
>>>>> [hidden email]
>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>
>>
>> --
>> Andoni Morales Alastruey
>>
>> LongoMatch:The Digital Coach
>> http://www.longomatch.ylatuya.es
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Chris Boucher
Yes, I just ran examples/player and it played an mp4 video file.

Chris.

On 14 December 2012 11:33, Ola Røer Thorsen <[hidden email]> wrote:

> Thanks, Andoni.
>
> I tried adding the property sheet to the INSTALL project in VS 2010, and
> recompiled. Now I get lots of compiler errors instead:
>
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(19): error C2146: syntax error : missing ';' before
> identifier 'streamoff'
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(19): error C4430: missing type specifier - int
> assumed. Note: C++ does not support default-int
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(19): error C4430: missing type specifier - int
> assumed. Note: C++ does not support default-int
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(28): error C2143: syntax error : missing ';' before
> 'const'
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(28): error C4430: missing type specifier - int
> assumed. Note: C++ does not support default-int
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(28): error C4430: missing type specifier - int
> assumed. Note: C++ does not support default-int
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(28): error C2146: syntax error : missing ';' before
> identifier '_BADOFF'
> 21>c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(28): error C2373: 'std::streamoff' : redefinition;
> different type modifiers
> 21>          c:\Program Files (x86)\Microsoft Visual Studio
> 10.0\VC\include\iosfwd(19) : see declaration of 'std::streamoff'
>
> Etc etc etc. Any idea what's going wrong this time?
>
> Chris, are you able to run the example applications in release mode now?
>
> Best regards,
> Ola
>
>
>
>
>
>
> Den 2012-12-14 12:15, skrev Chris Boucher:
>
>> Hi Andoni,
>>
>> Thanks!
>>
>> QtGStreamer is built using cmake, which I'm far from an expert in, so
>> I'm not sure how best to use the GStreamer SDK property sheet with it.
>> However, I modified the top level CMakeLists.txt as follows:
>>
>> --- CMakeLists.txt (revision 18879)
>> +++ CMakeLists.txt (working copy)
>> @@ -108,6 +108,10 @@
>>       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra
>> -Wformat-security -Wundef -Wpointer-arith -fno-common")
>>   endif ()
>>
>> +if (MSVC)
>> +    set(CMAKE_SHARED_LINKER_FLAGS "/OPT:NOREF")
>> +endif()
>> +
>>   set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE
>> STRING "Destination directory for libraries")
>>   set(INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/QtGStreamer)
>>
>> and the release DLLs now contain complete import sections. /OPT:NOREF
>> is the default in debug builds, which explains why it worked there.
>>
>> I have to say, I find the CRT fix a little odd and possibly
>> impracticable since I have other libraries I need to link against
>> (including Qt), but that's not relevant to this thread.
>>
>> Thanks again,
>> Chris.
>>
>> On 14 December 2012 10:27, Andoni Morales <[hidden email]> wrote:
>>>
>>> Hi,
>>>
>>> On Visual Studio, make sure that you use the property sheets included
>>> in the GStreamer SDK as explained in "Remove the dependency with the
>>> Visual Studio runtime" here:
>>>   include the property sheets:
>>> http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows
>>>
>>> Apart from linking to the same CRT used by the DLL's built with
>>> GStreamer, it will also set the the linker option
>>> OptimizeReferences=False, which will fix your issue in the Release
>>> build:
>>>
>>> http://cgit.freedesktop.org/gstreamer-sdk/cerbero/tree/data/vs/msvc/common.props#n15
>>>
>>> I will update the bug report.
>>>
>>> 2012/12/14 Ola Røer Thorsen <[hidden email]>:
>>>>
>>>> Hi Chris,
>>>>
>>>> I'm having the exact same problems as you, using visual studio 2010. I
>>>> reported this on the bugtracker too, btw.
>>>> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
>>>> unlucky ones.
>>>>
>>>> If you figure it out, please let me know :-)
>>>>
>>>> Cheers,
>>>> Ola
>>>>
>>>>
>>>>
>>>> 2012/12/13 Chris Boucher <[hidden email]>
>>>>>
>>>>> Hi Dinesh,
>>>>>
>>>>> Thanks for confirming that your import tables are correct.
>>>>>
>>>>> I'm going to try VS2010...
>>>>>
>>>>> Regards,
>>>>> Chris.
>>>>>
>>>>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>>>>> wrote:
>>>>>>
>>>>>> Hi Chris,
>>>>>>
>>>>>> Thanks for correcting me.
>>>>>>
>>>>>> I have just now checked my QtGlib.dll. I have my import table correct.
>>>>>>
>>>>>> My last suggestion is
>>>>>>
>>>>>> Clean the existing build.
>>>>>> - cmake -G "Visual Studio 8 2005" <other stuffs>
>>>>>>    - cmake --build . --target install --config Release.
>>>>>>
>>>>>> Regards
>>>>>> Dinesh P
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>>>>>> wrote:
>>>>>>>
>>>>>>> Hi Dinesh,
>>>>>>>
>>>>>>> The QtGStreamer release build isn't producing the gstreamer dlls, but
>>>>>>> it is linking to them.
>>>>>>>
>>>>>>> The QtGStreamer dlls are linked against the gstreamer ones, which
>>>>>>> results in QtGStreamer dlls having an import section listing the
>>>>>>> gstreamer dlls and functions required.
>>>>>>>
>>>>>>> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>>>>>>> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>>>>>>>
>>>>>>> In my debug build these sections also list the functions required. In
>>>>>>> my release build, the sections exist, but there are no functions
>>>>>>> listed.
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Chris.
>>>>>>>
>>>>>>> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>>>>>>> wrote:
>>>>>>>>
>>>>>>>> You  mean the relase build is producing dlls with empty import
>>>>>>>> tables
>>>>>>>> for
>>>>>>>> gstreamer dlls or QtGstreamer dlls?
>>>>>>>>
>>>>>>>> I am still wondering, why the QtGstreamer release build is producing
>>>>>>>> the
>>>>>>>> gstreamer dlls?
>>>>>>>>
>>>>>>>> Regards
>>>>>>>> Dinesh P
>>>>>>>>
>>>>>>>>
>>>>>>>> On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>>>>>>>> <[hidden email]>
>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>> gstreamer dlls.
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> gstreamer-devel mailing list
>>>>>>>> [hidden email]
>>>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> gstreamer-devel mailing list
>>>>>>> [hidden email]
>>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> gstreamer-devel mailing list
>>>>>> [hidden email]
>>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>>>
>>>>> _______________________________________________
>>>>> gstreamer-devel mailing list
>>>>> [hidden email]
>>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>>
>>>
>>>
>>> --
>>> Andoni Morales Alastruey
>>>
>>> LongoMatch:The Digital Coach
>>> http://www.longomatch.ylatuya.es
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>
>
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

Andoni Morales
In reply to this post by Chris Boucher
2012/12/14 Chris Boucher <[hidden email]>:

> Hi Andoni,
>
> Thanks!
>
> QtGStreamer is built using cmake, which I'm far from an expert in, so
> I'm not sure how best to use the GStreamer SDK property sheet with it.
> However, I modified the top level CMakeLists.txt as follows:
>
> --- CMakeLists.txt (revision 18879)
> +++ CMakeLists.txt (working copy)
> @@ -108,6 +108,10 @@
>      set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra
> -Wformat-security -Wundef -Wpointer-arith -fno-common")
>  endif ()
>
> +if (MSVC)
> +    set(CMAKE_SHARED_LINKER_FLAGS "/OPT:NOREF")
> +endif()
> +
>  set(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX} CACHE
> STRING "Destination directory for libraries")
>  set(INCLUDES_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include/QtGStreamer)
>
> and the release DLLs now contain complete import sections. /OPT:NOREF
> is the default in debug builds, which explains why it worked there.
>
> I have to say, I find the CRT fix a little odd and possibly
> impracticable since I have other libraries I need to link against
> (including Qt), but that's not relevant to this thread.

All this CRT thing, is a big mess from Windows since each VisualStudio
version provides its own CRT, different from the system one which is
the one used for drivers development and provided with the Windows
Driver Kit.

The CRT's provided with Visual Studio are not part of the system and
you need to redistribute them with your application. And that's a big
issue with the GPL license (see
http://www.gnu.org/licenses/gpl-faq.html#WindowsRuntimeAndGPL):
"[...] the GPL says that libraries can only qualify as System
Libraries as long as they're not distributed with the program
itself.[...]"

So in theory you can only link against msvcrt.dll, which is a system
library that you don't need to distribute with your application.

The big issue with mixing CRT's is that you can't open a Handle/FD
from one and close it with a different one or allocate objects  from
one CRT and free them with a different one. But that shouldn't happen
unless you are doing weird things. So if everything works you
shouldn't have to worry about mixing CRT's. Read this article from
Windows for more info:
http://msdn.microsoft.com/en-us/library/ms235460.aspx

Andoni

> Thanks again,
> Chris.
>
> On 14 December 2012 10:27, Andoni Morales <[hidden email]> wrote:
>> Hi,
>>
>> On Visual Studio, make sure that you use the property sheets included
>> in the GStreamer SDK as explained in "Remove the dependency with the
>> Visual Studio runtime" here:
>>  include the property sheets:
>> http://docs.gstreamer.com/display/GstSDK/Installing+on+Windows
>>
>> Apart from linking to the same CRT used by the DLL's built with
>> GStreamer, it will also set the the linker option
>> OptimizeReferences=False, which will fix your issue in the Release
>> build:
>> http://cgit.freedesktop.org/gstreamer-sdk/cerbero/tree/data/vs/msvc/common.props#n15
>>
>> I will update the bug report.
>>
>> 2012/12/14 Ola Røer Thorsen <[hidden email]>:
>>> Hi Chris,
>>>
>>> I'm having the exact same problems as you, using visual studio 2010. I
>>> reported this on the bugtracker too, btw.
>>> https://bugzilla.gnome.org/show_bug.cgi?id=686272 but it seems we're the
>>> unlucky ones.
>>>
>>> If you figure it out, please let me know :-)
>>>
>>> Cheers,
>>> Ola
>>>
>>>
>>>
>>> 2012/12/13 Chris Boucher <[hidden email]>
>>>>
>>>> Hi Dinesh,
>>>>
>>>> Thanks for confirming that your import tables are correct.
>>>>
>>>> I'm going to try VS2010...
>>>>
>>>> Regards,
>>>> Chris.
>>>>
>>>> On 13 December 2012 16:07, Dinesh Kumar <[hidden email]>
>>>> wrote:
>>>> > Hi Chris,
>>>> >
>>>> > Thanks for correcting me.
>>>> >
>>>> > I have just now checked my QtGlib.dll. I have my import table correct.
>>>> >
>>>> > My last suggestion is
>>>> >
>>>> > Clean the existing build.
>>>> > - cmake -G "Visual Studio 8 2005" <other stuffs>
>>>> >   - cmake --build . --target install --config Release.
>>>> >
>>>> > Regards
>>>> > Dinesh P
>>>> >
>>>> >
>>>> >
>>>> > On Thu, Dec 13, 2012 at 8:50 PM, Chris Boucher <[hidden email]>
>>>> > wrote:
>>>> >>
>>>> >> Hi Dinesh,
>>>> >>
>>>> >> The QtGStreamer release build isn't producing the gstreamer dlls, but
>>>> >> it is linking to them.
>>>> >>
>>>> >> The QtGStreamer dlls are linked against the gstreamer ones, which
>>>> >> results in QtGStreamer dlls having an import section listing the
>>>> >> gstreamer dlls and functions required.
>>>> >>
>>>> >> If you run "dumpbin /imports QtGlib.dll" (for example) you should see
>>>> >> sections for libgobject-2.0-0.dll and libglib-2.0-0.dll.
>>>> >>
>>>> >> In my debug build these sections also list the functions required. In
>>>> >> my release build, the sections exist, but there are no functions
>>>> >> listed.
>>>> >>
>>>> >> Thanks,
>>>> >> Chris.
>>>> >>
>>>> >> On 13 December 2012 15:04, Dinesh Kumar <[hidden email]>
>>>> >> wrote:
>>>> >> > You  mean the relase build is producing dlls with empty import tables
>>>> >> > for
>>>> >> > gstreamer dlls or QtGstreamer dlls?
>>>> >> >
>>>> >> > I am still wondering, why the QtGstreamer release build is producing
>>>> >> > the
>>>> >> > gstreamer dlls?
>>>> >> >
>>>> >> > Regards
>>>> >> > Dinesh P
>>>> >> >
>>>> >> >
>>>> >> > On Thu, Dec 13, 2012 at 8:08 PM, Chris Boucher
>>>> >> > <[hidden email]>
>>>> >> > wrote:
>>>> >> >>
>>>> >> >> gstreamer dlls.
>>>> >> >
>>>> >> >
>>>> >> >
>>>> >> > _______________________________________________
>>>> >> > gstreamer-devel mailing list
>>>> >> > [hidden email]
>>>> >> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>> >> >
>>>> >> _______________________________________________
>>>> >> gstreamer-devel mailing list
>>>> >> [hidden email]
>>>> >> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>> >
>>>> >
>>>> >
>>>> > _______________________________________________
>>>> > gstreamer-devel mailing list
>>>> > [hidden email]
>>>> > http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>> >
>>>> _______________________________________________
>>>> gstreamer-devel mailing list
>>>> [hidden email]
>>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>>
>>>
>>> _______________________________________________
>>> gstreamer-devel mailing list
>>> [hidden email]
>>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
>>>
>>
>>
>>
>> --
>> Andoni Morales Alastruey
>>
>> LongoMatch:The Digital Coach
>> http://www.longomatch.ylatuya.es
>> _______________________________________________
>> gstreamer-devel mailing list
>> [hidden email]
>> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



--
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es
_______________________________________________
gstreamer-devel mailing list
[hidden email]
http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Problems building QtGStreamer release build on Windows

gakwaya
In reply to this post by Chris Boucher
Hello ,
I am trying to build QtGsteamer for windows also and I am running into a lot of cmake errors .I see some of you guys have been successful .Can anyone send me the the built dlls I can link against form my Qt 4.8.6 msvs2010 windows application .I am looking into some cmake tutorials for the moment. My email is wayadn88[AT]gmail[DOT]com.

Thanks.