我正在使用Visual Studio 2008 C ++项目(Visa 32位)。
我有以下内容 #包括 我的源代码中的指令。
#include <example/header.h>
在我的包含路径中,我指定了 'example'的父目录,即
C:/.../include
标题的完整路径是什么样的
C:/.../include/example/header.h
但是,“例子”是一个 象征性的联系 (通过文件浏览器“新快捷方式”创建'.lnk')。我收到以下错误
c:... \ foo.cpp(37):致命错误C1083:无法打开包含文件:'example / header.h':没有这样的文件或目录
如果我 将符号链接替换为实际目录,项目将正确编译。出于实际原因,我需要它作为一个象征性的联系。反正有没有让Visual Studio预处理器跟随链接?
该链接是一个符号链接(.lnk)
你确定你没有创建快捷方式吗?快捷方式的工作级别高于符号链接,对应用程序没有任何意义。
相反,符号链接(如果正确创建)应该适用于任何读/写文件/文件夹的应用程序。
有关详细信息,您可以考虑阅读本文 关于符号链接的文章,它解释了如何使用创建符号链接 mklink
。
以下是“Bernard Kerckenaere”对该文章发表评论的有用摘录:
快捷方式:在操作系统级别(对于希望的应用程序)
读/写链接,它只是一个
无意义的文件)
软链接(或符号链接):像快捷方式,但在文件系统级别
(应用程序读/写
链接,实际上会读/写
文件链接到)
...
这将适用于分区或驱动器
硬链接:仅用于文件,会发生的是有多个
指向相同的文件条目
物理数据,删除时
进入,对方仍然会工作,
在所有条目之前,数据不会消失
被删除(如果有软链接你
删除原始目录,
链接将不再有效!)
- >显然,您只能在同一分区上创建指向文件的硬链接
你想要创造的是一个 象征性的联系 你可以做的 /D
参数使用mlink。
.lnk不是符号链接,它是Explorer的快捷方式文件。
要创建硬链接,请使用
fsutil hardlink create link_name file_name
在Vista上,有 mklink 用于创建符号链接的实用程序。
在涉及符号链接时,较旧版本的Visual Studio有点挑剔。使用文件的硬链接 \H
参数几乎没有工作,但使用了符号链接整个目录 \D
通常很好。然后,您可能需要从项目中删除并重新添加文件夹。