Connecting Tech Pros Worldwide Help | Site Map

lbcmt.lib reports missing std::exception in VS 2005 prof.

  #1  
Old March 13th, 2007, 10:55 PM
Darko Miletic
Guest
 
Posts: n/a
Recently I wrote a dll in c++ and to simplify the distribution I decided
to link with multithreaded static library (/MT or /MTd option). In debug
everything works fine but in release I get this:

parseMetadata.obj : error LNK2001: unresolved external symbol "public:
__thiscall std::exception::exception(void)" (??0exception@std@@QAE@XZ)
2>libcpmt.lib(string.obj) : error LNK2001: unresolved external symbol
"public: __thiscall std::exception::exception(void)"
(??0exception@std@@QAE@XZ)
2>parseMetadata.obj : error LNK2001: unresolved external symbol "public:
__thiscall std::exception::exception(char const * const &)"
(??0exception@std@@QAE@ABQBD@Z)
2>libcpmt.lib(string.obj) : error LNK2001: unresolved external symbol
"public: __thiscall std::exception::exception(char const * const &)"
(??0exception@std@@QAE@ABQBD@Z)
2>libcpmt.lib(locale0.obj) : error LNK2001: unresolved external symbol
"public: __thiscall std::exception::exception(char const * const &)"
(??0exception@std@@QAE@ABQBD@Z)
2>parseMetadata.obj : error LNK2001: unresolved external symbol "public:
__thiscall std::exception::exception(class std::exception const &)"
(??0exception@std@@QAE@ABV01@@Z)
2>libcpmt.lib(string.obj) : error LNK2001: unresolved external symbol
"public: __thiscall std::exception::exception(class std::exception const
&)" (??0exception@std@@QAE@ABV01@@Z)
2>libcpmt.lib(locale0.obj) : error LNK2001: unresolved external symbol
"public: __thiscall std::exception::exception(class std::exception const
&)" (??0exception@std@@QAE@ABV01@@Z)
2>parseMetadata.obj : error LNK2001: unresolved external symbol "public:
virtual __thiscall std::exception::~exception(void)"
(??1exception@std@@UAE@XZ)
2>libcpmt.lib(string.obj) : error LNK2001: unresolved external symbol
"public: virtual __thiscall std::exception::~exception(void)"
(??1exception@std@@UAE@XZ)
2>libcpmt.lib(locale0.obj) : error LNK2001: unresolved external symbol
"public: virtual __thiscall std::exception::~exception(void)"
(??1exception@std@@UAE@XZ)
2>parseMetadata.obj : error LNK2001: unresolved external symbol "public:
virtual char const * __thiscall std::exception::what(void)const "
(?what@exception@std@@UBEPBDXZ)
2>libcpmt.lib(string.obj) : error LNK2001: unresolved external symbol
"public: virtual char const * __thiscall std::exception::what(void)const
" (?what@exception@std@@UBEPBDXZ)
2>libcpmt.lib(locale0.obj) : error LNK2001: unresolved external symbol
"public: virtual char const * __thiscall std::exception::what(void)const
" (?what@exception@std@@UBEPBDXZ)

This does not make much sense to me? Is that a bug? Do I need service
pack or something else?
  #2  
Old March 14th, 2007, 06:35 AM
Carl Daniel [VC++ MVP]
Guest
 
Posts: n/a

re: lbcmt.lib reports missing std::exception in VS 2005 prof.


"Darko Miletic" <darko.miletic@globant.comwrote in message
news:%23CkmhibZHHA.4000@TK2MSFTNGP02.phx.gbl...
Quote:
Recently I wrote a dll in c++ and to simplify the distribution I decided
to link with multithreaded static library (/MT or /MTd option). In debug
everything works fine but in release I get this:
[errors snipped]
Quote:
This does not make much sense to me? Is that a bug? Do I need service pack
or something else?
It sounds like the C++ runtime library (libcpmt.lib) wasn't linked for some
reason. Another possibility is that you have multiple versions of VC++
installed, and the linker is linking the wrong library.

You could try adding /verbose to your linker options to see exactly what's
going on in either case.

-cd


  #3  
Old March 14th, 2007, 02:35 PM
Darko Miletic
Guest
 
Posts: n/a

re: lbcmt.lib reports missing std::exception in VS 2005 prof.


Carl Daniel [VC++ MVP] wrote:
Quote:
It sounds like the C++ runtime library (libcpmt.lib) wasn't linked for some
reason. Another possibility is that you have multiple versions of VC++
installed, and the linker is linking the wrong library.
You where right. I did have multiple versions of libcpmt.lib and
compiler used the wrong one. Thank you for your help :)

Darko
Closed Thread