Building 64bit static libs with ICC13 on Win Xp

Building 64bit static libs with ICC13 on Win Xp

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 .

7 Beiträge / 0 neu
Letzter Beitrag
Nähere Informationen zur Compiler-Optimierung finden Sie in unserem Optimierungshinweis.

Is your Windows7 an x64 edition?

Jennifer

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 ==========

 

>>...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.

>>...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... )

mspdb80.zip - MS Depends dwi file for mspdb80.dll - is attached.

Anlagen: 

AnhangGröße
Herunterladen mspdb80.zip803.87 KB

>>...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 ).

Kommentar hinterlassen

Bitte anmelden, um einen Kommentar hinzuzufügen. Sie sind noch nicht Mitglied? Jetzt teilnehmen