Intel® C++ Compiler
Community support and assistance for creating C++ code that runs on platforms based on Intel® processors.

Microsoft 'libcpmt.lib' and Intel 'libmmt.lib' locale-related conflicts for static Qt builds using ICC on Windows

sav
Novice
1,555 Views

Hello everyone,

For Qt builds using ICC on Windows got error:

        cd planets-qml\ && ( <span class="code-keyword">if</span> not exist Makefile c:\libQT-5.11-dev\build\qtbase\bin\qmake.exe -o Makefile c:\libQT-5.11-dev\build\qt3d\examples\qt3d\planets-qml\planets-qml.pro ) && <span class="code-quote">"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"</span> -f Makefile

Microsoft (R) Program Maintenance Utility Version 14.11.25547.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        <span class="code-quote">"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"</span> -f Makefile.Release

Microsoft (R) Program Maintenance Utility Version 14.11.25547.0
Copyright (C) Microsoft Corporation.  All rights reserved.

        echo 1 /* CREATEPROCESS_MANIFEST_RESOURCE_ID */ 24 /* RT_MANIFEST */ <span class="code-quote">"release\\planets-qml.exe.embed.manifest"</span>>release\planets-qml.exe_manifest.rc
        <span class="code-keyword">if</span> not exist release\planets-qml.exe <span class="code-keyword">if</span> exist release\planets-qml.exe.embed.manifest del release\planets-qml.exe.embed.manifest
        <span class="code-keyword">if</span> exist release\planets-qml.exe.embed.manifest copy /Y release\planets-qml.exe.embed.manifest release\planets-qml.exe_manifest.bak
        xilink /NOLOGO /SUBSYSTEM:WINDOWS <span class="code-quote">"/MANIFESTDEPENDENCY:type='win32' name='Microsoft.Windows.Common-Controls' version='6.0.0.0' publicKeyToken='6595b64144ccf1df' language='*' processorArchitecture='*'"</span> /MANIFEST /MANIFESTFILE:release\planets-qml.exe.embed.manifest /OUT:release\planets-qml.exe @C:\Users\test\AppData\Local\Temp\nm3C50.tmp
libcpmt.lib(locale.obj) : error LNK2005: ldexpf already defined in libmmt.lib(ldexpf_iface_c99.obj)
libcpmt.lib(wlocale.obj) : error LNK2005: ldexpf already defined in libmmt.lib(ldexpf_iface_c99.obj)
   Creating library release\planets-qml.lib and object release\planets-qml.exp
release\planets-qml.exe : fatal error LNK1169: one or more multiply defined symbols found
NMAKE : fatal error U1077: '<span class="code-quote">"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries\windows\bin\intel64\xilink.EXE"</span>' : <span class="code-keyword">return</span> code '0x491'
Stop.
NMAKE : fatal error U1077: '<span class="code-quote">"C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.11.25503\bin\HostX64\x64\nmake.exe"</span>' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : <span class="code-keyword">return</span> code '0x2'
Stop.

during planets-qml build, which relate to Microsoft libcpmt.lib and Intel libmmt.lib libraries.

 

Reproduced for:

  • static Qt builds using Windows ICC,

not reproduced for:

  • shared Qt builds using Windows ICC,
  • static Qt builds using mingw-w64 and MSVC.

It was registered on Qt bugtracker as QTBUG-64898, and Qt Developers believe it not Qt bug. And since error not reproduce for MSVC, it presumably is ICC bug.

 

Best,

Alexander

 

0 Kudos
5 Replies
Jingwei_Z_Intel
Employee
1,555 Views

Microsoft implements ldexpf in object files that has nothing to do with math library. We have asked Microsoft to remove such cases. Meanwhile, you can try to add "/FORCE:MULTIPLE" to your linker command to resolve the conflict.

0 Kudos
sav
Novice
1,555 Views

Thank you for a tip, Jingwei. Though trying to avoid "/FORCE:MULTIPLE" in build commands and prefer to disable failed builds.

Can you share a link to related ticket on Devcommunity or somewhere else, so it would be possible to track this issue directly?

 

0 Kudos
Jingwei_Z_Intel
Employee
1,555 Views

Based on what I have heard, Microsoft would fix the issue in the next Windows 10 release. I don't have a ticket number for this.

Thanks,

Jingwei

0 Kudos
sav
Novice
1,555 Views

Any news on this? Since for environment:

  • Windows 10 x64 10.0.17134.1,
  • ICC 2018 Update 3,
  • MSVC 2017 15.7.3,
  • Windows SDK 10.0.17134.12,

errors still reproduced.

A missing ticket number would be appreciated. Otherwise, there is not much to talk about with the Developers of MSVC.

 

Best,

Alexander

 

roberto_g_2
New Contributor I
1,455 Views

Issue still there...  December 2020

0 Kudos
Reply