Comment 3 for bug 1026592

Revision history for this message
Albert Santoni (gamegod) wrote : Re: [Bug 1026592] Re: Mixxx crashes when using the track list windows ( 1.11 )

On Thu, Jul 19, 2012 at 10:14 PM, Sean M. Pappalardo
<email address hidden> wrote:
> Thanks for clarifying that, Albert. I read some stuff that alluded to
> that being a problem but it's good to hear someone declare it. :)
>
> That's likely what's going on because in the libs package the OP is
> using, I built all of the dependencies as static libs with /MT, but Qt
> had to be built as DLLs due to us requiring WebKit (it is excluded if
> you do a static Qt build,) so naturally used the /MD option. Do you
> happen to know if it's feasible to build DLLs using the /MT option (or
> static libs using /MD) so that everything is consistent? I know it's
> possible to do both, but do you know if either will work?

Yes, this is possible. The /MD and /MT flags _only_ refer to the
static and dynamic linking of the C runtime.

I know it's confusing, so I'll say it again - /MD and /MT only tell
the linker how it should link your application or library against the
MSVC runtime. It doesn't have anything to do with whether or not
you're building an application, a static library, or a dynamic
library. You can do any of those with any combination of the above
flags. But you have to be consistent in which runtime you use (/MD and
/MT) otherwise you end up in this mess.

So I think both the possibilities you suggested (building DLLs with
/MT and static libs with /MD) should work. Try rebuilding Qt as DLLs
with the /MT option, and hopefully that'll solve the problem.

/MD and /MDd are typically the standard ones to us though. Any reason
why you picked /MT instead?

>
> That said, using the same bunch of libraries and Qt DLLs, I _do not_ get
> the problem on my system. (Is there a certain amount of randomness with
> this that can affect when things crash?)

Yeah, there is unfortunately, but if you're lucky it'll crash right
away. It's one of these things where you end up with loads of bad
pointers and it's just a matter of time before stuff starts to crash.

However, when you've got Mixxx built as a debug build (/Zi usually)
and linked with the debug C runtime (eg. /MDd), then it turns on a
load of extra asserts that usually catch the corruption early and
crash faster. This is probably what Krysstof is seeing.

Thanks!
Albert

>
> --
> You received this bug notification because you are a member of Mixxx
> Development Team, which is subscribed to Mixxx.
> https://bugs.launchpad.net/bugs/1026592
>
> Title:
> Mixxx crashes when using the track list windows ( 1.11 )
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/mixxx/+bug/1026592/+subscriptions

--
Albert Santoni
Developer, Mixxx
http://www.mixxx.org
http://www.oscillicious.com