the ugly msvcr71d.dll and lnk4098

  • Thread starter jigi via DotNetMonster.com
  • Start date
J

jigi via DotNetMonster.com

for those who followed my woes yesterday,
http://www.dotnetmonster.com/Uwe/Fo...cr71-dll-and-msvcr71d-dll-in-my-release-build


Now i ran one of the dependant lib files thru the /verbose option during a
release build

i saw this

Searching C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\msvcprtd.
lib:
Searching C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\
MSVCRTD.lib:
Found __imp___CrtDbgReport
Referenced in WebServiceAPIClientPlain.lib(gsoapWinInet.obj)
Loaded MSVCRTD.lib(MSVCR71D.dll)
Found __imp___ftime
Referenced in OLDNAMES.lib(ftime.obi)
Loaded MSVCRTD.lib(MSVCR71D.dll)
Found __strdup
Referenced in OLDNAMES.lib(strdup.obj)
Loaded MSVCRTD.lib(MSVCR71D.dll)
Found __imp___stricmp
Referenced in OLDNAMES.lib(stricmp.obi)
Loaded MSVCRTD.lib(MSVCR71D.dll)
Found __imp___strnicmp
Referenced in OLDNAMES.lib(strnicmp.obi)
Loaded MSVCRTD.lib(MSVCR71D.dll)
Found __IMPORT_DESCRIPTOR_MSVCR71D
Referenced in MSVCRTD.lib(MSVCR71D.dll)
Referenced in MSVCRTD.lib(MSVCR71D.dll)
Referenced in MSVCRTD.lib(MSVCR71D.dll)
Referenced in MSVCRTD.lib(MSVCR71D.dll)
Referenced in MSVCRTD.lib(MSVCR71D.dll)
Loaded MSVCRTD.lib(MSVCR71D.dll)
Found MSVCR71D_NULL_THUNK_DATA
Referenced in MSVCRTD.lib(MSVCR71D.dll)
Loaded MSVCRTD.lib(MSVCR71D.dll)


Discarded __strnicmp from MSVCRTD.lib(MSVCR71D.dll)
Discarded __stricmp from MSVCRTD.lib(MSVCR71D.dll)
Discarded '.idata$6' from MSVCRTD.lib(MSVCR71D.dll)
AND A BUNCH OF DISCARD NOTICES FOR MSVCR71D.dll

WHAT DOES THIS ALL MEAN. ANYONE CARE TO EXPLAIN??? Is this the reason that my
final dll is corrupt during release build?
 
J

jigi via DotNetMonster.com

CD, i did read those and thos eseetings have always been present and i was
able to build good release from that setting.
 
C

Carl Daniel [VC++ MVP]

jigi said:
CD, i did read those and thos eseetings have always been present and
i was
able to build good release from that setting.

Here's an experiment for you: go to a command prompt that has the VC++
tools directory on the path. Navigate to the

.../../../Libraries3rdParty\tiffio\qTiffio\Debug

directory, and execute dumpbin /directives name.lib

where 'name' is the name of the (or each) library file that you find there.

After each invocation of dumpbin, take a look at the output that dumpbin
produced. You'll get output that looks like this:

Dump of file name.obj

File Type: COFF OBJECT

Linker Directives
-----------------
/DEFAULTLIB:"MSVCRTD"
/DEFAULTLIB:"OLDNAMES"

In one or more of those libraries you'll find MSVCRTD.LIB listing in the
linker directives - that's the library that's causing the debug CRT to be
pulled in.

Then, remove that directory from your linker input settings. You already
have

...\..\..\Libraries3rdParty\Tiffio\qTiffio\Release

on your linker input path - it's highly unlikely that you really need to
have both the debug and release paths in your release build linker settings.

If you do need both, then that library is broken and you should contact the
support people for that library to resolve the problem with their library.

-cd
 
C

Carl Daniel [VC++ MVP]

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top