Pau*_*aul 5 c++ mfc linker-errors visual-c++ visual-studio-2012
在Visual Studio 2012中创建最简单类型的新MFC应用程序,并将其设置为静态链接到MFC时,链接失败.
这是一个包含7个屏幕截图的图库,从项目创建到向导,直到建筑物(导致链接器错误). 中间没有进行任何源编辑.
错误日志状态:
1>------ Build started: Project: Test, Configuration: Debug Win32 ------
1> stdafx.cpp
1> TestDlg.cpp
1> Test.cpp
1> Generating Code...
1>uafxcwd.lib(afxctrlcontainer2.obj) : error LNK2005: "void __cdecl AfxRegisterMFCCtrlClasses(void)" (?AfxRegisterMFCCtrlClasses@@YAXXZ) already defined in afxnmcdd.lib(afxctrlcontainer2.obj)
1>uafxcwd.lib(afxctrlcontainer2.obj) : error LNK2005: "protected: void __thiscall CMFCControlContainer::PreUnsubclassControl(class CWnd *)" (?PreUnsubclassControl@CMFCControlContainer@@IAEXPAVCWnd@@@Z) already defined in afxnmcdd.lib(afxctrlcontainer2.obj)
1>uafxcwd.lib(afxctrlcontainer2.obj) : error LNK2005: "public: int __thiscall CMFCControlContainer::SubclassDlgControls(void)" (?SubclassDlgControls@CMFCControlContainer@@QAEHXZ) already defined in afxnmcdd.lib(afxctrlcontainer2.obj)
1>C:\Users\XXXXXXXX\Documents\Visual Studio 2012\Projects\Test\Debug\Test.exe : fatal error LNK1169: one or more multiply defined symbols found
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
Run Code Online (Sandbox Code Playgroud)
这只是我吗?你对如何解决这个问题有什么建议吗?
当我尝试将项目静态链接在一起时,我遇到了同样的问题。
正如Michael Burr所建议的那样,在stdafx.h中注释掉#define _AFX_NO_MFC_CONTROLS_IN_DIALOGS行之后,这似乎还不错。
小智 0
经测试,v100工作正常,v110不行。尝试通过以下链接向 MS connect 报告: http://connect.microsoft.com/VisualStudio/feedback/details/581084/linker-cant-locate-some-external-symbol-when-use-mfc-in-a-静态库