Farid Zaripov wrote:
-----Original Message-----
From: Martin Sebor [mailto:[EMAIL PROTECTED]
Sent: Tuesday, November 06, 2007 2:11 AM
To: stdcxx-dev@incubator.apache.org
Subject: Re: [PING] Re: svn commit: r588290 -
/incubator/stdcxx/branches/4.2.x/etc/config/windows/projectdef.js
I think I understand this part: The .pdb file needs to be in
the same directory as the library for the debugger to find it
on is own.
IIUC, in 4.2.0 we have it in the wrong directory and Farid's
patch makes the linker put in the same directory as the lib.
Do I have it right, Farid?
Not linker, but librarian (lib.exe). And what do you mean by "wrong
directory"?
Liviu asked in his post below if it would be possible to "generate
a pdb file in the lib directory" so, presumably, in 4.2.0 the .pdb
file is in some other directory. IIUC, you changed the directory
where the file is placed from what you call $(IntDir) to $(OutDir)
in 588290. So by the "wrong directory" I mean $(IntDir), with
$(OutDir) (presumably) being the right one.
http://www.nabble.com/Use-of--Fd-option-on-Windows-tf4691559.html
The absolute .pdb file path stored in each .obj file (and the .lib
file in static builds
is the archive of the .obj files), so .pdb file will be found by linker
if you don't move it.
What if you install the library in some non-default location or on
a different drive? E.g., what if you install Visual Studio in such
a location? If the object files contain the absolute pathname of
the .pdb files does it mean that the debugger won't be able to find
the debugging symbols for the Visual Studio libraries?
Or can the pathname of the .pdb files be a relative one, perhaps
WRT the library?
But if you copied the .lib file from the %BUILDDIR%/lib directory to
another computer
and build some project, which is uses that library, you need also copy
the
corresponding vcx0.pdb file from the %BUILDDIR%/src directory. This is
for 4.2.0.
So if I build 4.2.0 in, say c:\sebor\stdcxx-4.2.0\lib, i.e., I have
c:\sebor\stdcxx-4.2.0\lib\libstdcxx.4.2.0.lib, where will the .pdb
file be? And if Liviu installs stdcxx 4.2.0 in d:\libs\stdcxx\lib,
i.e., he has d:\libs\stdcxx\lib\libstdcxx.4.2.0.lib, where does he
need to put the .pdb file (and what is its full name)?
In 4.2.x you still need copy the corresponding .pdb file, but in this
case from the
directory where the .lib file is located and the name of the .pdb file
coincide with
the name of .lib file.
Martin