Boost logo

Boost Users :

From: Douglas Gregor (gregod_at_[hidden])
Date: 2002-11-26 08:43:25


On Tuesday 26 November 2002 05:48 am, Klaus Nowikow wrote:
> a colleague asked me to post the following question:
>
> When using the boost signal lib in VC6 (Win32 Console Application), the
> linker produces the following errors:
>
> msvcprt.lib(MSVCP60.dll) : error LNK2005: "public: __thiscall
> std::_Lockit::~_Lockit(void)" (??1_Lockit_at_std@@QAE_at_XZ) already defined in
> libcpd.lib(iostream.obj)
> msvcprt.lib(MSVCP60.dll) : error LNK2005: "public: __thiscall
> std::_Lockit::_Lockit(void)" (??0_Lockit_at_std@@QAE_at_XZ) already defined in
> libcpd.lib(iostream.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: "public: __thiscall
> exception::exception(class exception const &)" (??0exception@@QAE_at_ABV0@@Z)
> already defined in LIBCD.lib(stdexcpt.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: "public: __thiscall
> exception::exception(void)" (??0exception@@QAE_at_XZ) already defined in
> LIBCD.lib(stdexcpt.obj)
> MSVCRT.lib(MSVCRT.dll) : error LNK2005: "public: virtual __thiscall
> exception::~exception(void)" (??1exception@@UAE_at_XZ) already defined in
> LIBCD.lib(stdexcpt.obj)
> LINK : warning LNK4098: defaultlib "MSVCRT" conflicts with use of other
> libs; use /NODEFAULTLIB:library
> Debug/boost.exe : fatal error LNK1169: one or more multiply defined symbols
> found
>
> There seems to be a conflict between the libraries signals.lib, libcpd.lib
> and libcd.lib.
> When I try to ignore the libraries libcpd.lib and libcd.lib in the project
> settings, other linker errors occur when I use std::cout for example:
> main.obj : error LNK2001: unresolved external symbol "class
> std::basic_ostream<char,struct std::char_traits<char> > std::cout"
> (?cout_at_std@@3V?$basic_ostream_at_DU?$char_traits_at_D@std@@@1_at_A)
>
> Is there a way to use the boost::signals library in a Win32 Console
> Application in VC6?

Yes. I believe the problem is that Signals is built against the dynamic
run-time libraries whereas VC6 console applications default to static
linking. Within the project options there is a setting for the type of
run-time to link against. I suggest changing that (to single-threaded
dynamic).

I hope someone more familiar with VC6 will correct me if I am wrong...

        Doug


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net