我用以下形式创建了一个完整的WIN32控制台应用程序项目的C ++解决方案:
每个项目都包含.cpp和.h文件,而在Forms中只有main.cpp,其中包含所有.h文件的包含行。
当我试图建立一个项目时,我得到了LNK2019 - 当我尝试从main编译时,每个项目似乎都出现了未解析的外部符号。
我读了很多关于它的问题,我试图处理其他依赖项或构建顺序,但似乎没有任何区别。
我在这里附加了一个项目的错误(按钮) - 我想,一旦我发现一个项目的问题,其余的将是相同的。
Error 1 error LNK2019: unresolved external symbol "public: void __thiscall Graphics::clearScreen(void)" (?clearScreen@Graphics@@QAEXXZ) referenced in function "public: virtual void __thiscall Button::keyDown(int,char)" (?keyDown@Button@@UAEXHD@Z) D:\Forms\Button\Button.obj Button
Error 2 error LNK2019: unresolved external symbol "public: void __thiscall Graphics::setBackground(enum Color)" (?setBackground@Graphics@@QAEXW4Color@@@Z) referenced in function "public: virtual void __thiscall Button::draw(class Graphics,int,int,unsigned int)" (?draw@Button@@UAEXVGraphics@@HHI@Z) D:\Forms\Button\Button.obj Button
Error 3 error LNK2019: unresolved external symbol "public: void __thiscall Graphics::setForeground(enum Color)" (?setForeground@Graphics@@QAEXW4Color@@@Z) referenced in function "public: virtual void __thiscall Button::draw(class Graphics,int,int,unsigned int)" (?draw@Button@@UAEXVGraphics@@HHI@Z) D:\Forms\Button\Button.obj Button
Error 4 error LNK2019: unresolved external symbol "public: void __thiscall Graphics::write(int,int,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >)" (?write@Graphics@@QAEXHHV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z) referenced in function "public: virtual void __thiscall Button::draw(class Graphics,int,int,unsigned int)" (?draw@Button@@UAEXVGraphics@@HHI@Z) D:\Forms\Button\Button.obj Button
Error 5 error LNK2019: unresolved external symbol "public: __thiscall Control::Control(void)" (??0Control@@QAE@XZ) referenced in function "public: __thiscall Button::Button(int)" (??0Button@@QAE@H@Z) D:\Forms\Button\Button.obj Button
Error 6 error LNK2019: unresolved external symbol "public: __thiscall Control::~Control(void)" (??1Control@@QAE@XZ) referenced in function __unwindfunclet$??0Button@@QAE@H@Z$0 D:\Forms\Button\Button.obj Button
Error 7 error LNK2001: unresolved external symbol "public: virtual void __thiscall Control::getAllControls(class std::vector<class Control *,class std::allocator<class Control *> > *)" (?getAllControls@Control@@UAEXPAV?$vector@PAVControl@@V?$allocator@PAVControl@@@std@@@std@@@Z) D:\Forms\Button\Button.obj Button
Error 8 error LNK2001: unresolved external symbol "public: virtual void __thiscall Control::setWidth(int)" (?setWidth@Control@@UAEXH@Z) D:\Forms\Button\Button.obj Button
Error 9 error LNK2001: unresolved external symbol "public: virtual void __thiscall Control::setValue(int)" (?setValue@Control@@UAEXH@Z) D:\Forms\Button\Button.obj Button
Error 10 error LNK2001: unresolved external symbol "public: virtual void __thiscall Control::SetForeground(enum Color)" (?SetForeground@Control@@UAEXW4Color@@@Z) D:\Forms\Button\Button.obj Button
Error 11 error LNK2001: unresolved external symbol "public: virtual void __thiscall Control::SetBackground(enum Color)" (?SetBackground@Control@@UAEXW4Color@@@Z) D:\Forms\Button\Button.obj Button
Error 12 error LNK2019: unresolved external symbol "public: void __thiscall Control::drawBackground(void)" (?drawBackground@Control@@QAEXXZ) referenced in function "public: virtual void __thiscall Button::draw(class Graphics,int,int,unsigned int)" (?draw@Button@@UAEXVGraphics@@HHI@Z) D:\Forms\Button\Button.obj Button
Error 13 error LNK2019: unresolved external symbol _main referenced in function ___tmainCRTStartup D:\Forms\Button\MSVCRTD.lib(crtexe.obj) Button
Error 14 error LNK1120: 13 unresolved externals D:\Forms\Debug\Button.exe Button
.h文件路径是正确的,我可以看到intellisense中的所有选项。
我会批评可能有助于我解决此问题的任何想法。 感谢
答案 0 :(得分:1)
因此,如果我理解正确,您只有一个项目的主要?
如果这是正确的,那么尝试将所有其他项目构建为静态库(.lib)(或共享库(.dll))并将引用构建到主体中项目(表格)应该有效。
现在您正尝试从12other .exe构建可执行文件(.exe)。它无法运作。