【问题标题】:How to resolve linking error?如何解决链接错误?
【发布时间】:2010-11-01 02:35:46
【问题描述】:

我有一个项目。它仅在链接时显示错误。

它显示 __getch alresdy defined evnthough 我忽略了特定的库 MSVCR80D.dll 它显示错误。

请在这方面帮助我.....

使用 /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<char,struct std::char_traits<char> >::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)

【问题讨论】:

  • 你命名了一个函数 getch 吗?你能显示一些代码吗?
  • 这听起来可能很刺耳,但最直接的解决方法是在链接器设置中将“显示进度”设置为“全部”,然后只分析输出。
  • 该输出中没有错误消息。

标签: visual-studio visual-c++ visual-studio-2005 conditional-compilation


【解决方案1】:

查看项目设置,在配置属性 -> C/C++ -> 代码生成 -> 运行时库。

设置,无论是 MD 、 MTD 还是其他,都必须在您的库和 ACE 的库之间兼容。

你不应该手动忽略任何库,应该没有必要。

【讨论】:

  • 我会说“相同”,而不是“兼容”...有没有一种情况可以混合使用不同设置编译的库?
猜你喜欢
  • 2011-05-25
  • 2011-10-17
  • 1970-01-01
  • 2015-07-21
  • 2014-01-10
  • 1970-01-01
  • 2011-07-25
  • 2016-01-09
相关资源
最近更新 更多