编译器不遵循Visual Studio C++中的符号链接

Aku*_*ete 11 winapi compiler-errors header-files visual-studio-2008

我正在使用Visual Studio 2008 C++项目(Visa 32位).

我的源代码中有以下#include指令.

#include <example/header.h>
Run Code Online (Sandbox Code Playgroud)

在我的include路径中,我指定'example'父目录,即

C:/.../include
Run Code Online (Sandbox Code Playgroud)

标题的完整路径是什么样的

C:/.../include/example/header.h
Run Code Online (Sandbox Code Playgroud)

但是,'example'是一个符号链接(通过文件浏览器"新快捷方式"创建的'.lnk').我收到以下错误

c:...\foo.cpp(37):致命错误C1083:无法打开包含文件:'example/header.h':没有这样的文件或目录

如果我将符号链接替换为实际目录,项目将正确编译.出于实际原因,我需要它作为一个象征性的联系.反正有没有让Visual Studio预处理器跟随链接?

Cam*_*Cam 10

该链接是一个符号链接(.lnk)

你确定你没有创建快捷方式吗?快捷方式的工作级别高于符号链接,对应用程序没有任何意义.

相反,符号链接(如果正确创建)应该适用于任何读/写文件/文件夹的应用程序.

有关更多详细信息,您可以考虑阅读本文关于符号链接的内容,该文章说明了如何使用创建符号链接mklink.

以下是"Bernard Kerckenaere"对该文章发表评论的有用摘录:

  • 快捷方式:在操作系统级别(对于希望读取/写入链接的应用程序,它只是一个无意义的文件)

  • 软链接(或符号链接):像一个快捷方式,但在文件系统级别(读取/写入链接的应用程序,实际上将读取/写入链接到的文件)...这将跨分区或驱动器工作

  • 硬链接:仅对于文件,会发生的情况是,有多个文件条目指向相同的物理数据,当您删除一个条目时,另一个仍然有效,在删除所有条目之前数据不会消失(如果使用软链接删除原始目录,该链接将不再起作用!) - >您显然只能在同一分区上创建指向文件的硬链接

您要创建的是一个符号链接,您可以/D使用mlink 对参数执行此操作.