Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2008/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2008 编译器不遵循Visual Studio C++;_Visual Studio 2008_Winapi_Compiler Errors_Header Files - Fatal编程技术网

Visual studio 2008 编译器不遵循Visual Studio C++;

Visual studio 2008 编译器不遵循Visual Studio C++;,visual-studio-2008,winapi,compiler-errors,header-files,Visual Studio 2008,Winapi,Compiler Errors,Header Files,我使用Visual Studio 2008 C++项目(VISA 32位)。 我的源代码中有以下#include指令 #include <example/header.h> 标题的完整路径如下所示 C:/.../include/example/header.h 但是,“示例”是一个符号链接(通过文件浏览器“新建快捷方式”创建的“.lnk”)。我得到以下错误 c:…\foo.cpp(37):致命错误C1083:无法打开包含文件:“example/header.h”:没有此类文件或目

我使用Visual Studio 2008 C++项目(VISA 32位)。 我的源代码中有以下#include指令

#include <example/header.h>
标题的完整路径如下所示

C:/.../include/example/header.h
但是,“示例”是一个符号链接(通过文件浏览器“新建快捷方式”创建的“.lnk”)。我得到以下错误

c:…\foo.cpp(37):致命错误C1083:无法打开包含文件:“example/header.h”:没有此类文件或目录

如果我用实际目录替换符号链接,项目将正确编译。出于实际原因,我需要它成为一个象征性的链接。是否有任何方法使Visual Studio预处理器遵循链接

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

您确定没有创建快捷方式吗?快捷方式比符号链接工作在更高的级别,对应用程序来说毫无意义

相反,符号链接(如果正确创建)应该可以与任何读取/写入文件/文件夹的应用程序配合使用

对于更多的细节,您可能希望考虑阅读这一点,它解释了如何使用<代码> MKLink < /代码>创建符号链接。 下面是“Bernard Kerckenaere”对那篇文章的评论中的一段有用的片段:

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

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

  • 硬链接:仅对于文件,发生的情况是有多个 指向同一文件的文件项 当您删除一个物理数据时 进入时,另一个仍将工作 直到所有条目都被删除,数据才会消失 被删除(如果使用软链接) 删除原始目录,然后 链接将不再工作!) ->显然,您只能创建指向同一分区上的文件的硬链接


您要创建的是一个符号链接,您可以使用mlink使用
/D
参数来创建该链接。

。lnk不是符号链接,它是资源管理器的快捷方式文件。 要创建硬链接,请使用

fsutil hardlink create link_name file_name

在Vista上,有mklink实用程序来创建符号链接。

旧版本的Visual Studio在符号链接方面有点挑剔。使用
\H
参数对文件进行硬链接几乎不起作用,但使用
\D
对整个目录进行符号链接通常可以。之后,您可能需要将文件夹从项目中删除并重新添加到项目中。

为了使问题描述更清楚,您可能需要将“example.h”更改为“header.h”或其他内容,因为您稍后会引用“example”,所以一开始有点难以理解。@Cam:Done。我试着把这个问题重新写一遍,使它更清楚。好多了;)。。。如果从桌面浏览到
示例
,它是否正常工作?此外,您是在使用实际的“符号链接”,还是在使用“连接”?(最后一个问题似乎毫无意义/显而易见,但我只是想确定一下)@Cam:通过文件浏览器查看符号链接是正确的。链接是一个符号链接(.lnk),我甚至不知道连接是什么,直到我刚才查了一下:)@Akusete:我刚刚测试过,它似乎对我很好。你是如何创建符号链接的?啊。。。我不经常使用windows进行开发。我很惊讶“ln-s”在cygwin中创建了一个“.lnk”文件。我正在将一个linux项目移植到windows,脚本使用“ln-s”生成头文件链接,它在cygwin上创建了快捷方式,而不是实际的符号links@Akusete:啊-真烦人。我对*nix开发或cygwin不太熟悉(尽管我正在努力解决这个问题!),但我认为通过cygwin很难创建符号链接。你能用对mklink的调用替换ln-s实例吗?
fsutil hardlink create link_name file_name