1

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

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

我还包含了我想在我自己的项目中使用的ScreenGrab.h标头。Intellisense 可以很好地从ScreenGrab.h中提取函数定义,因此我调用了 SaveDDSTextureToFile()

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

我想我需要告诉链接器这些文件在哪里?我尝试在Properties->Configuration Settings->Linker->General->Additional Library Directories中执行此操作,但我仍然收到 LNK2019 错误。

有谁知道我还缺少什么?

谢谢你的时间。

4

2 回答 2

2

愚蠢的是,我没有将库添加到链接器哎呀。

基本上对于忘记这一步的其他人 - 在将目录添加到 Linker->General 之后,转到 Linker->Input 并将 .lib 的名称添加到“Additional Dependencies” - 所以对我来说,我输入了“DirectXTK .lib”在这里(不带引号)。

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

很抱歉浪费了人们的时间,我希望这对其他人有所帮助。

于 2013-09-06T14:00:13.043 回答
1

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

于 2013-09-06T14:03:25.303 回答