Connecting Tech Pros Worldwide Forums | Help | Site Map

LNK1104: Libcimt - Finding references to Old STL vs. New STL in libs

Lance
Guest
 
Posts: n/a
#1: Nov 16 '05
I'm trying to migrate a VC++ 6 project to VS .NET 2003, and have hit the
LNK1104 - libcimt.lib problem where there's some code still referencing the
old STL library.

I've verified all our code uses the new STL headers.

Can I use "dumpbin /symbols" to check each 3rd party library we use to see
if it uses the old vs. new STL library ? How do I tell if the references
are for the old vs new STL?

Thanks for any pointers....
-Lance



Jochen Kalmbach
Guest
 
Posts: n/a
#2: Nov 16 '05

re: LNK1104: Libcimt - Finding references to Old STL vs. New STL in libs


Lance wrote:
[color=blue]
> I'm trying to migrate a VC++ 6 project to VS .NET 2003, and have hit
> the LNK1104 - libcimt.lib problem where there's some code still
> referencing the old STL library.
>
> I've verified all our code uses the new STL headers.
>
> Can I use "dumpbin /symbols" to check each 3rd party library we use to
> see if it uses the old vs. new STL library ? How do I tell if the
> references are for the old vs new STL?[/color]

LNK1104: cannot open file 'filename' !?

Why not use the /VERBOSE parameter in the linker !?
This will also let you find the depending LIB/OBJ.

--
Greetings
Jochen

Do you need a memory-leak finder ?
http://www.codeproject.com/useritems/leakfinder.asp
Carl Daniel [VC++ MVP]
Guest
 
Posts: n/a
#3: Nov 16 '05

re: LNK1104: Libcimt - Finding references to Old STL vs. New STL in libs


Lance wrote:[color=blue]
> I'm trying to migrate a VC++ 6 project to VS .NET 2003, and have hit
> the LNK1104 - libcimt.lib problem where there's some code still
> referencing the old STL library.
>
> I've verified all our code uses the new STL headers.
>
> Can I use "dumpbin /symbols" to check each 3rd party library we use
> to see if it uses the old vs. new STL library ? How do I tell if
> the references are for the old vs new STL?[/color]

Everything in the C++ standard library is in the std namespace, while
"classic iostreams" (aka libcimt.lib) is in the global namespace. Further,
standard iostreams are templates, while classic iostreams are not.

Suggestion: do a dumpbin/symbols on libcimt.lib to see what they look like:
you should be able to easily pick them out from standard iostreams because,
for example, there's no class iostream in the standard library - instead,
there's a typedef basic_iostream<...> iostream.

-cd


Lance
Guest
 
Posts: n/a
#4: Nov 16 '05

re: LNK1104: Libcimt - Finding references to Old STL vs. New STL in libs


Carl -

Thanks. I'll give that a try.

-Lance

"Carl Daniel [VC++ MVP]" <cpdaniel@nospam.mvps.org> wrote in message
news:ug7R7fCXDHA.1888@TK2MSFTNGP10.phx.gbl...[color=blue]
> Lance wrote:[color=green]
> > I'm trying to migrate a VC++ 6 project to VS .NET 2003, and have hit
> > the LNK1104 - libcimt.lib problem where there's some code still
> > referencing the old STL library.
> >
> > I've verified all our code uses the new STL headers.
> >
> > Can I use "dumpbin /symbols" to check each 3rd party library we use
> > to see if it uses the old vs. new STL library ? How do I tell if
> > the references are for the old vs new STL?[/color]
>
> Everything in the C++ standard library is in the std namespace, while
> "classic iostreams" (aka libcimt.lib) is in the global namespace.[/color]
Further,[color=blue]
> standard iostreams are templates, while classic iostreams are not.
>
> Suggestion: do a dumpbin/symbols on libcimt.lib to see what they look[/color]
like:[color=blue]
> you should be able to easily pick them out from standard iostreams[/color]
because,[color=blue]
> for example, there's no class iostream in the standard library - instead,
> there's a typedef basic_iostream<...> iostream.
>
> -cd
>
>[/color]


Closed Thread