无法解析的外部符号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法解析的外部符号相关的知识,希望对你有一定的参考价值。

App.obj : error LNK2019: 无法解析的外部符号 _D3DXMatrixPerspectiveFovLH@20,该符号在函数 "public: void __thiscall App::Begin(void)" (?Begin@App@@QAEXXZ) 中被引用
App.obj : error LNK2019: 无法解析的外部符号 _D3DXMatrixLookAtLH@16,该符号在函数 "public: void __thiscall App::Begin(void)" (?Begin@App@@QAEXXZ) 中被引用
App.obj : error LNK2019: 无法解析的外部符号 _D3DXCreateTextureFromFileW@12,该符号在函数 "public: void __thiscall App::Begin(void)" (?Begin@App@@QAEXXZ) 中被引用
App.obj : error LNK2019: 无法解析的外部符号 _D3DXMatrixTranslation@16,该符号在函数 "public: void __thiscall App::FrameRender(void)" (?FrameRender@App@@QAEXXZ) 中被引用
App.obj : error LNK2019: 无法解析的外部符号 _D3DXMatrixRotationY@8,该符号在函数 "public: void __thiscall App::FrameRender(void)" (?FrameRender@App@@QAEXXZ) 中被引用
App.obj : error LNK2019: 无法解析的外部符号 _D3DXMatrixMultiply@12,该符号在函数 "public: struct D3DXMATRIX __thiscall D3DXMATRIX::operator*(struct D3DXMATRIX const &)const " (??DD3DXMATRIX@@QBE?AU0@ABU0@@Z) 中被引用
main.obj : error LNK2019: 无法解析的外部符号 __imp__timeGetTime@0,该符号在函数 _WinMain@16 中被引用
main.obj : error LNK2019: 无法解析的外部符号 _Direct3DCreate9@4,该符号在函数 _WinMain@16 中被引用
MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用

一般出现lnk2019错误都是库文件没添加造成的。
项目--》属性--》配置属性--》链接器-》输入--》附加依赖项
在其中加入所需库文件,同时在“链接器--》常规--》附加库目录”中填入相应库名。这样应该就可以了。
参考技术A 没有实现内容吧,如 参考技术B ①不包含其他的头文件。若要使用自定义类对象,使用前置声明 的方法。
②使用自定义类的指针,而非直接使用该类型。
参考技术C 哥们,这东西很猛,不知道是什么语言?

error LNK2019: 无法解析的外部符号

1>main.obj : error LNK2019: 无法解析的外部符号 "double __cdecl GetRealFromKeyboard(void)" (?GetRealFromKeyboard@@YANXZ),该符号在函数 "double __cdecl GetReal(char *)" (?GetReal@@YANPAD@Z) 中被引用
1>main.obj : error LNK2019: 无法解析的外部符号 "char * __cdecl GetStringFromKeyboard(void)" (?GetStringFromKeyboard@@YAPADXZ),该符号在函数 "char * __cdecl GetString(char *)" (?GetString@@YAPADPAD@Z) 中被引用

楼上说的是一般的解决办法,没有错。
但是有的问题不在这,我之前添加VISA库编译就遇到这个问题,按照别人说的添加库路径没有用,我是64位系统,使用VS2013,默认编译使用的是win32,怎么样都提示这个错误。后来在网上找到了个帖子,将win32更改为X64,编译成功无错误。
还有的不知道如何添加库的,直接使用全路径也能解决,#pragma comment(lib,“C:\\A\\B\\C\\XXXX.lib”)。
参考技术A 你用了zylib库函数了吧。这个错误说明你包含了zylib.h,但没有正确导入它的链接库。
要确认zylib的链接库放在正确的位置(一般放在VS/VC目录子目录,参考VC的选项目录设置),并被工程正确的导入(可以在工程设置中导入,也可以通过代码)本回答被提问者采纳
参考技术B 遇到这种问题一般都是由于缺少相应的库文件

右击项目,选择“属性”--“链接器”--“输入”--“附加依赖项”
根据错误中的提示在下图右边的红色框内添加相应的lib文件

再次编译运行即可避免此类错误产生

这是我们常见的错误,我们要学会解决

只有在不断地探索解决的时候才会有收获

这样对程序员才是一种欣喜,一种进步
参考技术C 你可以看看是不是工程里面没有添加那个头文件,一般文件还是在哪个文件夹下,但是没有添加进工程,我有两次就是那样的,你可以试试找到CDynSplitterWnd头文件然后添加进工程,或者包含试试。我也不清楚你的具体情况,所以只是猜测而已。 参考技术D GetStringFromKeyboard这个函数的执行体未被找到。请检查头文件是否包含正确。
static变量的声明错误,也会导致LNK2019,你可以在MSDN里输入LNK2019查看更详细的信息。

以上是关于无法解析的外部符号的主要内容,如果未能解决你的问题,请参考以下文章

ACE编程,无法解析外部符号

C++无法解析的外部命令和外部符号

error LNK2001: 无法解析的外部符号

error LNK2019: 无法解析的外部符号

C++无法解析的外部符号

LNK2019 无法解析的外部符号