C ++ - LNK2019未解析的外部符号 - 似乎无法找到我所遗漏的内容

时间:2013-09-06 13:55:56

标签: c++ visual-c++ linker directx

我知道这是一个常见的问题,我可以看到很多关于LNK2019的问题,但我不能为我的生活找到我所缺少的东西。

我正在开发一个C ++ DirectX项目,我想使用 DirectXTK 库(Direct X Tool Kit)。我已将该项目包含在我的解决方案中并且构建良好。

我还包含了我想在自己的项目中使用的 ScreenGrab.h 标题。 Intellisense从 ScreenGrab.h 中获取函数定义,因此我调用了 SaveDDSTextureToFile()

但是当我去构建项目时,我在 SaveDDSTextureToFile()上得到LNK2019错误。我假设这意味着它知道定义在哪里(在标题中)但是找不到.obj或.lib中函数的实现是正确的吗?

我假设我需要告诉链接器这些文件在哪里?我尝试在属性 - >配置设置 - >链接器 - >常规 - >其他库目录中执行此操作,但我仍然收到LNK2019错误。

有谁知道我还缺少什么?

感谢您的时间。

2 个答案:

答案 0 :(得分:2)

愚蠢的是,我没有将lib添加到Linker oops。

基本上对于忘记此步骤的其他人 - 在您将目录添加到Linker-> General后,转到Linker->输入并将.lib的名称添加到“其他依赖项” - 所以对于我在这里输入了“DirectXTK.lib”(没有引号)。

如果我没有将目录添加到Linker-> General我也可以在这里键入“../folder1/folder2/folder-etc/DirectXTK.lib”,具体取决于我的项目所在的相对路径。

抱歉浪费了人们的时间,我希望这有助于他人。

答案 1 :(得分:1)

确保您的链接器 - > general->附加库目录配置适用于所有配置,而不仅仅是“发布”或“调试”。尝试从SDK目录中将静态库文件(取决于您正在使用的Direct3D版本)添加到项目中 - 如果它编译,那么您肯定对链接器配置做错了。