M
Markus Ewald
I'm just experimenting around with the VisualC++ 2005 Express Edition Beta
and found some strange behavior for which I can't seem to find a workaround.
What I've done is set up two static library projects for Lua 5.0.2 and
LuaBind beta-6, compiling both with no CLR support and configured to use the
Multithreaded DLL runtime. Then I created a new console application which
makes use of these two static libraries (of course, also set to MT DLL). So
far so good, everything works.
When I then turned on CLR support for this console application, the linker
complained about symbols from the runtime libraries being defined mutiple
times - eg. in msvcprtd.lib (DLL runtime) and *libcpmtd.lib* (static
runtime).
Where does that come from ?
I thought the CLR mode event requires MT DLL compilation ?
Some of the errors I'm getting:
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: "public: virtual __thiscall
std::exception::~exception(void)" (??1exception@std@@UAE@XZ) already defined
in vc8test.obj
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: "public: __thiscall
std::exception::exception(void)" (??0exception@std@@QAE@XZ) already defined
in vc8test.obj
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: "public: __thiscall
std::exception::exception(class std::exception const &)"
(??0exception@std@@QAE@ABV01@@Z) already defined in vc8test.obj
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall
std::_Container_base::~_Container_base(void)"
(??1_Container_base@std@@QAE@XZ) already defined in vc8test.obj
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall
std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in
libcpmtd.lib(xlock.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall
std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in
libcpmtd.lib(xlock.obj)
If anyone can suggest a workaround or knows what might be causing
libcpmt(d).lib to be linked I'd be more than happy ;-)
-Markus-
and found some strange behavior for which I can't seem to find a workaround.
What I've done is set up two static library projects for Lua 5.0.2 and
LuaBind beta-6, compiling both with no CLR support and configured to use the
Multithreaded DLL runtime. Then I created a new console application which
makes use of these two static libraries (of course, also set to MT DLL). So
far so good, everything works.
When I then turned on CLR support for this console application, the linker
complained about symbols from the runtime libraries being defined mutiple
times - eg. in msvcprtd.lib (DLL runtime) and *libcpmtd.lib* (static
runtime).
Where does that come from ?
I thought the CLR mode event requires MT DLL compilation ?
Some of the errors I'm getting:
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: "public: virtual __thiscall
std::exception::~exception(void)" (??1exception@std@@UAE@XZ) already defined
in vc8test.obj
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: "public: __thiscall
std::exception::exception(void)" (??0exception@std@@QAE@XZ) already defined
in vc8test.obj
MSVCRTD.lib(MSVCR80D.dll) : error LNK2005: "public: __thiscall
std::exception::exception(class std::exception const &)"
(??0exception@std@@QAE@ABV01@@Z) already defined in vc8test.obj
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall
std::_Container_base::~_Container_base(void)"
(??1_Container_base@std@@QAE@XZ) already defined in vc8test.obj
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall
std::_Lockit::~_Lockit(void)" (??1_Lockit@std@@QAE@XZ) already defined in
libcpmtd.lib(xlock.obj)
msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: __thiscall
std::_Lockit::_Lockit(int)" (??0_Lockit@std@@QAE@H@Z) already defined in
libcpmtd.lib(xlock.obj)
If anyone can suggest a workaround or knows what might be causing
libcpmt(d).lib to be linked I'd be more than happy ;-)
-Markus-