无法在Visual Studio 2015中打开源文件

3
我正在尝试使用Visual Studio Community 2015在Windows上编译 OBS studio 并按照 this tutorial 进行操作。我已在Visual Studio中创建了一个项目,并通过将文件拖入解决方案资源管理器中的方式将整个git存储库复制到了该项目中。此项目依赖于libav、x264和curl,它们分别以.lib、.dll和头文件的形式给出。
问题是我一直收到“无法打开源文件”的错误提示。我将头文件放在与dll和lib不同的文件夹中(dll和lib在同一文件夹中)。在项目设置->VC++目录下,我添加了包含目录,并添加了库目录。然后我在链接器->输入->附加依赖项下特别添加了lib。接着,我将包含.dll文件的目录添加到环境变量PATH中。
尽管如此,我仍然收到相同的错误提示,以及其他几个错误提示。这里是一个具有该问题的源文件的屏幕截图。

cannot open source file

这是我的设置。

Directories

Libraries

enter image description here

对于路径,我已经尝试了带和不带末尾的正斜杠。


确保您更改的项目设置与您构建的配置相同。我看到Debug / Win32和Debug / x86。不确定它们是否相同。检查包含文件夹是否包含在#include子句中的/之前的文件夹,并且此文件夹包含您包含的文件。物理上。我的意思是去那里看看它们是否存在。 - Ivan Aksamentov - Drop
2个回答

7

编辑:

使用C/C++设置而不是VC++设置来添加包含目录。

你可能被卡住的原因是,VS侧栏中的文件夹图标实际上与文件系统没有关系。它们是过滤器,并且不会根据实际目录更改。

这是Drop建议的另一个解释--检查文件是否真的在你认为的位置。


头文件都是相对于我放在包含目录中的路径而言的。Visual Studio也会找到它们并打开它们。由于这些是库,所以没有源代码。这就是为什么我有点迷茫如何正确地实现它们。lib和DLL文件的名称也不完全像头文件,这也增加了我的困惑。 - cmacia06
你现在的错误与.lib或.dll没有任何关系(至少目前还没有)。你可以尝试使用C/C++而不是VC++来进行额外的包含。你也可以尝试使用""而不是<>来包含目录。 - Nathan J
我找到了问题所在。我只需要将额外的目录添加到 C/C++ 和链接器中,而不是 "VC++ 目录",就像你说的一样。如果你能修改答案以反映这一点,那我就可以接受它作为答案。谢谢! - cmacia06

3

在我的情况下,我已经添加了包括库,但这还不够。只有当我在项目属性中将配置从 x86 切换到 x64 时,错误才消失。


1
一样的情况。一个微软经典! - fishbone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接