Hi, I just downloaded the Overloaded library and I'm having problems getting started.
I unzipped the library and openeded the Overloaded_dist workspace.
When I tried to compile the Caverunner sample, I got these errors:
LIBCMT.lib(tolower.obj) : error LNK2005: __tolower already defined in LIBC.lib(tolower.obj)
LIBCMT.lib(tolower.obj) : error LNK2005: _tolower already defined in LIBC.lib(tolower.obj)
LIBCMT.lib(tolower.obj) : warning LNK4006: __tolower already defined in LIBC.lib(tolower.obj); second definition ignored
LIBCMT.lib(tolower.obj) : warning LNK4006: _tolower already defined in LIBC.lib(tolower.obj); second definition ignored
Creating library Release/Overloaded.lib and object Release/Overloaded.exp
LINK : warning LNK4098: defaultlib "LIBCMT" conflicts with use of other libs; use /NODEFAULTLIB:library
../../../Common/DLL/Overloaded.dll : fatal error LNK1169: one or more multiply defined symbols found
Error executing link.exe.
CaveRunner.exe - 3 error(s), 124 warning(s)
When I added /NODEFAULTLIB:LIBCMT to the link settings for Overloaded DLL, it compiles ok, but crashes immediately with an access violation.
When I debug it shows the error as being in this line:
// file Overloaded.h
//! Case insensitive character traits;
struct CICharTraits : public std::char_traits< char >
{
//! Return whether c1 and c2 are equal
static bool eq( const char& c1, const char& c2 )
{
return toupper( c1 ) == toupper( c2 ); // <--
}
Can anyone tell me what I'm doing wrong?
Thanks in advance,
Eben Olson