views:

239

answers:

1

Hi

I hav a project.it shows error only with linking only.

it displays __getch alresdy defined evnthough i hav ignored specific library MSVCR80D.dll it shows error.

Plz Help me in this regard.....

after using /verbose:

Processed /DEFAULTLIB:msvcprtd Processed /DEFAULTLIB:MSVCRTD Processed /DEFAULTLIB:OLDNAMES Processed /DEFAULTLIB:MSVCMRTD Processed /DEFAULTLIB:MSCOREE Processed /DEFAULTLIB:uuid.lib Processed /DEFAULTLIB:atlsd.lib Processed /DEFAULTLIB:kernel32.lib Processed /DEFAULTLIB:user32.lib Processed /DEFAULTLIB:advapi32.lib Processed /DEFAULTLIB:ole32.lib Processed /DEFAULTLIB:shell32.lib Processed /DEFAULTLIB:oleaut32.lib Processed /DEFAULTLIB:shlwapi.lib Processed /DEFAULTLIB:ws2_32.lib Referenced in config.lib(configwrapper.obj) Loaded msvcprtd.lib(MSVCP80D.dll) msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: char __thiscall std::basic_ios >::fill(void)const " (?fill@?$basic_ios@DU?$char_traits@D@std@@@std@@QBEDXZ) already defined in ACEsd.lib(Log_Record.obj) Found "__declspec(dllimport) public: int __thiscall std::ios_base::flags(void)const " (__imp_?flags@ios_base@std@@QBEHXZ) Referenced in config.lib(serializetransport_settings.obj) Referenced in config.lib(serializeretentionsettings.obj) Referenced in s2libs.lib(operatingsystem.obj) Referenced in s2libs.lib(errormajor.obj)

    Loaded msvcprtd.lib(MSVCP80D.dll)

msvcprtd.lib(MSVCP80D.dll) : error LNK2005: "public: int __thiscall std::ios_base::flags(void)const " (?flags@ios_base@std@@QBEHXZ) already defined in ACEsd.lib(Log_Record.obj) Found "__declspec(dllimport) public: int __thiscall std::ios_base::width(void)const " (__imp_?width@ios_base@std@@QBEHXZ) Referenced in config.lib(serializetransport_settings.obj) Referenced in config.lib(serializeretentionsettings.obj) Referenced in s2libs.lib(operatingsystem.obj) Referenced in s2libs.lib(errormajor.obj) Referenced in config.lib(serializereplicationpairsettings.obj) Referenced in config.lib(serializecdpsnapshotrequest.obj) Referenced in config.lib(serializeatconfigmanagersettings.obj) Referenced in config.lib(serializeretentioninformation.obj) Referenced in config.lib(marshal.obj) Referenced in config.lib(serializevolumegroupsettings.obj) Referenced in config.lib(unmarshal.obj)

+2  A: 

have a look at the project settings , at Configuration Properties -> C/C++ -> Code Generation -> Runtime Library.

the setting , whether it MD , MTD or whatever, must be compatible between your library and ACE's library.

you should not manually ignore any library, there should be no need for that.

geva30
Instead of 'compatible', I would have said 'the same'... Is there a case where you can mix up libraries not compiled with the same setting?
Xavier Nodet