<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 12pt;
font-family:Calibri
}
--></style></head>
<body class='hmmessage'><div dir='ltr'>Sorry, I forgot, I already did this:<BR> <BR>NT.common:<BR> <BR> if USE_MSVCRT<br> SYSTEM_LIBS{"LIBC"} += [LibIn("msvcrt")]<br> if equal ($CM3_VS2015_OR_NEWER, "1")<br> SYSTEM_LIBS{"LIBC"} += [LibIn("vcruntime")]<br> SYSTEM_LIBS{"LIBC"} += [LibIn("ucrt")]<br> end<br> else<br> SYSTEM_LIBS{"LIBC"} += [LibIn("libcmt")]<br> if equal ($CM3_VS2015_OR_NEWER, "1")<br> SYSTEM_LIBS{"LIBC"} += [LibIn("libvcruntime")]<br> SYSTEM_LIBS{"LIBC"} += [LibIn("libucrt")]<br> end<br> end<br><br><br><BR>so:<BR>set CM3_VS2015_OR_NEWER=1<BR> <BR>in your environment. Easy enough? I'm not sure.<BR> <BR> - Jay<BR><br> <BR><div><hr id="stopSpelling">From: jay.krell@cornell.edu<br>To: dmuysers@hotmail.com; m3devel@elegosoft.com<br>Date: Sun, 28 Feb 2016 22:39:15 +0000<br>Subject: [M3devel] cm3 linking to Visual C++ runtime<br><br>
<style><!--
.ExternalClass .ecxhmmessage P {
padding:0px;
}
.ExternalClass body.ecxhmmessage {
font-size:12pt;
font-family:Calibri;
}
--></style>
<div dir="ltr"> For a very long time, to link the Visual C++ C runtime library, you linked to one of: <br> <br> libcmt.lib -- static C runtime <br> msvcrt.lib -- import library for dynamic C runtime, and static startup code<br> libcmtD.lib - debug static C runtime <br> msvcrtD.lib -- import library for debug dynamic C runtime, and static startup code <br> <br> <br> This changes with Visual C++ 14/2015. <br> The C runtime has been split into three pieces. <br> I believe you have to link to three libraries. <br> msvcrt.lib ucrt.lib vcruntime.lib <br> OR: <br> libcmt.lib libucrt.lib libvcruntime.lib <br><br> <br> Part of the rationale here is to actually slow down the rate of change. <br> Previously, the entire C runtime was revised with every release.<br> Now, a large chunk of it has been moved out into the "operating system" <br> and will remain compatible with all toolsets. That is the "ucrt" part. <br> U is for universal. <br> <br><br>"makefile breakage" is unfortunate. <br><br> <br> I'm not sure what to do in the config files, to automatically work with anything. <br> Perhaps remove the /nodefaultlib. <br> /nodefaultlib has a lot of precedent in multiple systems, but so does not using it. <br> <br> <br> For now, please adjust your config files. <br> <br> <br> Probably removing /nodefaultlib is the right thing. <br> <br> A long time ago, there were cm3 releases set to use the non-thread-safe C runtime. <br> /nodefaultlib was needed to workaround that. <br> The non-thread-safe C runtime has not now existed for a while. <br> <br><br> - Jay <br> <br>
</div>
<br>_______________________________________________
M3devel mailing list
M3devel@elegosoft.com
https://mail.elegosoft.com/cgi-bin/mailman/listinfo/m3devel</div> </div></body>
</html>