[Interest] Whats the difference between compiling with /MD and /MT?
Nuno Santos
nunosantos at imaginando.pt
Thu Oct 8 21:29:20 CEST 2015
Hi,
Today I have built Qt statically with the option -openssl-linked. My
first option was to link with the MD versions of libs because Qt is
using /MD during the build process. After a successfull compilation of
Qt I have built the a static plugin I'm working on but the host software
couldn't find it. I couldn't tell why.
The other day I found someone who changed the msvc-desktop.conf to use
/MT instead of /MD. From what I have read in Microsoft documentation and
all around there, if I want to statically link with the MSVC runtime,
not depending on the installation of the run time, I need to use the /MT
flag.
I have decided to give it a try and after rebuilding Qt with /MT instead
of /MD, and then rebuilding my plugin again, it is now detected by the
host. However, when I try to compile it in Release Mode I have thousands
of errors:
thousands of *unresolved external symbol __purecall*
thousands of *unresolved external symbol "void __cdecl operator
delete(void *)" (??3 at YAXPAX@Z)*
What does this mean? Why is it able to compile in debug but not in
release? Can someone kindly explain me the differences and implications
of /MD and /MT?
Thanks,
Regards,
Nuno
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.qt-project.org/pipermail/interest/attachments/20151008/d117cdbf/attachment.html>
More information about the Interest
mailing list