Building 64bit static libs with ICC13 on Win Xp

Building 64bit static libs with ICC13 on Win Xp

imagem de Sunil Gokak

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 posts / 0 new
Último post
Para obter mais informações sobre otimizações de compiladores, consulte Aviso sobre otimizações.
imagem de Jennifer J. (Intel)

Is your Windows7 an x64 edition?

Jennifer

imagem de Jennifer J. (Intel)

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

 

imagem de Sergey Kostrov

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

imagem de Sergey Kostrov

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

imagem de Sergey Kostrov

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

Anexos: 

AnexoTamanho
Download mspdb80.zip803.87 KB
imagem de Sergey Kostrov

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

Faça login para deixar um comentário.