【问题标题】:Include source and header files from other drive letter and documentation for E1696包括来自 E1696 的其他驱动器号和文档的源文件和头文件
【发布时间】:2021-01-06 19:30:18
【问题描述】:

我正在查看 https://docs.microsoft.com/en-us/cpp/error-messages/,但找不到任何有关 E1696 错误的文档。

有时我能够编译我的代码,但有时它会给我这个错误消息:

Code:  Description:
E1696  cannot open source file "C:resource.h"
E1696  cannot open source file "c:Common.h"
E1696  cannot open source file "C:resource.h"

先介绍一下背景:

我有一个自己的库(.h 和 .cpp)文件,它位于另一个驱动器(USB 闪存驱动器)上,特别是 D: 驱动器,我导入了这些源文件和头文件进入我新创建的位于标准 C: drive 上的项目。这样我就可以分离我的库文件并将它们用于多个项目。

但有时我有一些头文件需要包含主项目的头文件在C:盘从D:盘,我这样做的方式是这样的:

#include "C:resource.h"

C:(C 冒号)似乎可以引用 C: 驱动器,但它会给出此错误消息。我不想包含整个路径,因为当我将来创建另一个新项目时,必须更改此路径,如果我使用相同的源文件,我将无法这样做。

E1696 错误代码似乎不会影响编译和链接过程,因为它完成并且我的可执行文件已创建而不管此错误。然而,Visual Studio 中的“错误列表”窗口给了我这个恼人的错误信息。

我正在使用 Visual Studio C++ 2019 Ver 16.7.3

C 和 D 和 LNK 错误代码等已记录在案,但我在 MSDN 或 Visual Studio 网站上找不到 E 错误代码...

【问题讨论】:

  • 尝试“C:\\header.h”。通过将目录添加到包含路径,您最好使用相对路径而不是绝对路径。
  • @VainMan:这给了我三个 C1083 错误。 “无此文件或目录”。我在 C 根目录上没有源文件。不幸的是,这让事情变得更糟。
  • 谁反对这个应该请说明原因,这样我就可以改进这个问题。没有信息,我无能为力。
  • 对不起,我误解了你的问题。我以为你错过了路径分隔符“\”。我已经添加了答案。
  • @VainMan:不用担心。

标签: c++ visual-studio compiler-errors


【解决方案1】:

C:header.h 是来自C: 驱动器的current directory 的相对路径(Windows 为每个驱动器保留一个current directory)。 MSVC 仅从 Include Directories 搜索头文件,即使您已将目录添加到 Include Directories,也不会重新调整此类路径。 (注意:检查documentation中的确切搜索行为)。

正确的方法之一是将头文件所在的目录添加到项目>配置>VC++目录>包含目录并使用#include "header.h"

【讨论】:

  • 这行得通。奇怪的是,当我使用同一个驱动器时,我不必将我的项目添加到包含目录中。无论如何,现在我不再收到那些烦人的错误消息了。
  • 因为有些目录是默认开启的,所以不需要手动操作。检查documention 中的确切搜索行为。
猜你喜欢
  • 1970-01-01
  • 2017-03-20
  • 1970-01-01
  • 2012-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-01
相关资源
最近更新 更多