我知道这是一个常见的问题,我可以看到很多关于LNK2019的问题,但我不能为我的生活找到我所缺少的东西。
我正在开发一个C ++ DirectX项目,我想使用 DirectXTK 库(Direct X Tool Kit)。我已将该项目包含在我的解决方案中并且构建良好。
我还包含了我想在自己的项目中使用的 ScreenGrab.h 标题。 Intellisense从 ScreenGrab.h 中获取函数定义,因此我调用了 SaveDDSTextureToFile()。
但是当我去构建项目时,我在 SaveDDSTextureToFile()上得到LNK2019错误。我假设这意味着它知道定义在哪里(在标题中)但是找不到.obj或.lib中函数的实现是正确的吗?
我假设我需要告诉链接器这些文件在哪里?我尝试在属性 - >配置设置 - >链接器 - >常规 - >其他库目录中执行此操作,但我仍然收到LNK2019错误。
有谁知道我还缺少什么?
感谢您的时间。
答案 0 :(得分:2)
愚蠢的是,我没有将lib添加到Linker oops。
基本上对于忘记此步骤的其他人 - 在您将目录添加到Linker-> General后,转到Linker->输入并将.lib的名称添加到“其他依赖项” - 所以对于我在这里输入了“DirectXTK.lib”(没有引号)。
如果我没有将目录添加到Linker-> General我也可以在这里键入“../folder1/folder2/folder-etc/DirectXTK.lib”,具体取决于我的项目所在的相对路径。
抱歉浪费了人们的时间,我希望这有助于他人。
答案 1 :(得分:1)
确保您的链接器 - > general->附加库目录配置适用于所有配置,而不仅仅是“发布”或“调试”。尝试从SDK目录中将静态库文件(取决于您正在使用的Direct3D版本)添加到项目中 - 如果它编译,那么您肯定对链接器配置做错了。