C++无法解析的外部信息

问题描述:

有谁知道这意味着什么?C++无法解析的外部信息

1> Generating Code... 
1>BlankWindowDXbaseImpl.obj : error LNK2019: unresolved external symbol "public: __thiscall DXBase::DXBase(void)" ([email protected]@[email protected]) referenced in function "public: __thiscall BlankWindowDXBaseImpl::BlankWindowDXBaseImpl(void)" ([email protected]@[email protected]) 
1>BlankWindowDXbaseImpl.obj : error LNK2019: unresolved external symbol "public: virtual __thiscall DXBase::~DXBase(void)" ([email protected]@[email protected]) referenced in function "public: virtual __thiscall BlankWindowDXBaseImpl::~BlankWindowDXBaseImpl(void)" ([email protected]@[email protected]) 
1>main.obj : error LNK2019: unresolved external symbol "public: void __thiscall DXBase::shutdown(void)" ([email protected]@@QAEXXZ) referenced in function [email protected] 
1>main.obj : error LNK2019: unresolved external symbol "public: bool __thiscall DXBase::initalize(struct HINSTANCE__ *,struct HWND__ *)" ([email protected]@@[email protected]@[email protected]@@Z) referenced in function [email protected] 
1>C:\backup\development\directXworkspace\BlankWindow\Debug\BlankWindow.exe : fatal error LNK1120: 4 unresolved externals 

这意味着你有无法解析的外部符号。

什么是符号?符号可以是任何变量,类,成员函数或函数。

为什么它们没有解决?您的代码(或您正在使用的库)的某些部分依赖于这些符号,因为您没有链接正确的库或实现它们而没有找到它们。

+0

你是对的,链接器找不到正确的lib。但是,在VS2010中,我将lib路径设置为包含所需lib的路径。它根本就不会找到它。我刚刚厌倦了,并将类和头移到同一个项目中,所以它在本地找到了lib。 – Sublimemm

+2

显然你做得不对,因为这是正常的事情。在光顾的风险中,您需要1)将库目录添加到“常规/附加库目录”中2)将库本身添加到“输入/附加依赖关系”3)请参考.lib时不要忘记.lib库在第2步。 – john

这意味着你有一个链接器的问题。 (链接器找不到包含这些符号的库)您需要在库路径中包含所需的库。

可能你没有链接到正确的库。

但是,你应该提供一些更多的细节..它看起来像你在问答比赛中提问。

是的,这意味着你的程序调用已声明但没有主体的函数。

您是否期待这些功能成为您的代码的一部分,或由某个库提供?

+0

简单,直截了当。让我马上发现我的错误! – absentmindeduk

我刚刚有同样的问题,如果您添加#pragma注释(lib,“d3d9.lib”) 这将包括编译您的代码所需的库文件。它只是混淆了哪个lib文件来获取64位或32位。希望这可以帮助。