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

Building 64bit static libs with ICC13 on Win Xp

Sunil_Gokak
Beginner
293 Views

I am trying to build a win64 static library using ICC13.0 . The OS that I am trying to build is Windows XP (32 bit). I have installed Visual Studio 2008 ( along with the 64 compiler tools).

The issue that I am facing is that there is a 64bit dll exported Visual Studio 2008 called mspdb80.dll which is located at the following location:

C:\Program Files\Microsoft Visual Studio 9.0\VC\bin\amd64

The above dll fails to load saying mspdb80.dll is not a valid Windows image. This is seen only on Windows XP and not on Windows 7.  I guess mcpcom.exe(installed by Intel) is loading this dll .

When I try to build the static library with MSVC90, it builds fine. 

Thanks .

0 Kudos
6 Replies
JenniferJ
Moderator
293 Views

Is your Windows7 an x64 edition?

Jennifer

0 Kudos
JenniferJ
Moderator
293 Views

I do not see the issue on our WinXP.  See below.

What is the exact output you have?

------ Rebuild All started: Project: static_lib, Configuration: Release x64 ------ Deleting intermediate files and output files for project 'static_lib', configuration 'Release|x64'. Compiling with Intel(R) C++ Compiler XE 13.0.0.089 [Intel(R) 64]... (Intel C++ Environment) stdafx.cpp Creating library... (Intel C++ Environment) xilib: executing 'lib' stdafx.obj : warning LNK4221: no public symbols found; archive member will be inaccessible Build Time: 0:00:01 Build log was saved at "file://C:\Documents and Settings\jljiang\My Documents\Visual Studio 2008\Projects\static_lib\x64\Release\BuildLog.htm" static_lib - 0 error(s), 1 warning(s), 0 remark(s) ========== Rebuild All: 1 succeeded, 0 failed, 0 skipped ==========

 

0 Kudos
SergeyKostrov
Valued Contributor II
293 Views
>>...there is a 64bit dll exported Visual Studio 2008 called mspdb80.dll... Here are a couple of notes: - Please use MS Depends and verify that mspdb80.dll is 64-bit dll. ( I just verified on my development computer and it is 64-bit ). - I could upload MS Depends dwi file for mspdb80.dll dll and you could use it with the utility in order to compare information ( dll on your computer vs. dll on my computer ) and please confirm if you need it - As soon as you have MS Depends you will need to open mspdb80.dll, find it in the list of dlls, and look for OS Ver and Subsystem Ver values ( attributes ). For the mspdb80.dll I see the following values: OS Ver - 5.2 Subsystem Ver - 5.2 - Value 5.2 means the dll will work on Windows Server 2003 and won't work on Windows XP because it requires value 5.1 for both attribitues of Portable Executable ( PE ) format. What I really can't understand so far why mspdb80.dll is used in Visual Studio 2008.
0 Kudos
SergeyKostrov
Valued Contributor II
293 Views
>>...The above dll fails to load saying mspdb80.dll is not a valid Windows image... There are two reasons why the message is displayed: - The dll is Not built for Windows XP and 'OS Ver' and 'Subsystem Ver' attributes are equal to 5.2 - This is a 64-bit dll and it can't be loaded on a 32-bit Windows XP ( Note: I had exactly the same issue today... )
0 Kudos
SergeyKostrov
Valued Contributor II
293 Views
mspdb80.zip - MS Depends dwi file for mspdb80.dll - is attached.
0 Kudos
SergeyKostrov
Valued Contributor II
293 Views
>>...The above dll fails to load saying mspdb80.dll is not a valid Windows image... Jennifer, I'd like to clarify, the problem happens at run-time ( Not during compilation or link steps of the build ).
0 Kudos
Reply