我知道这是一个常见问题,我可以看到很多关于 LNK2019 的问题,但我终究找不到我遗漏的问题。
我正在处理一个 C++ DirectX 项目,我想使用 DirectXTK 库 ( Direct X Tool Kit )。我已将该项目包含在我的解决方案中,并且构建良好。
我还包含了我想在我自己的项目中使用的 ScreenGrab.h header 。 Intellisense 从 ScreenGrab.h 中获取函数定义,所以我调用了 SaveDDSTextureToFile()。
但是当我去构建项目时,我在 SaveDDSTextureToFile() 上遇到了 LNK2019 错误。 我假设这意味着它知道定义在哪里(在标题中)但找不到函数在 .obj 或 .lib 中的实现是否正确?
我假设我需要告诉链接器这些文件在哪里?我尝试在 Properties->Configuration Settings->Linker->General->Additional Library Directories 中这样做,但我仍然收到 LNK2019 错误。
有人知道我还想念什么吗?
感谢您的宝贵时间。
最佳答案
愚蠢的是,我没有将库添加到链接器哎呀。
基本上对于忘记这一步的其他人 - 在你将目录添加到 Linker->General 之后,转到 Linker->Input 并将 .lib 的名称添加到“Additional Dependencies” - 所以对我来说我在此处键入“DirectXTK.lib”(不带引号)。
如果我没有将目录添加到 Linker->General,我也可以在此处键入“../folder1/folder2/folder-etc/DirectXTK.lib”,具体取决于我的项目所在的相对路径。
很抱歉浪费了大家的时间,我希望这对其他人有帮助。
关于C++ - LNK2019 未解析的外部符号 - 似乎找不到我缺少的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18659567/