解决“VS 报No such file or directory“问题
Posted sanqima
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决“VS 报No such file or directory“问题相关的知识,希望对你有一定的参考价值。
今天在使用VS2015的calcOne工程,将工程由Debug版本改为Release版本,编译时弹出"无法打开包括文件: “addFunc.h”: No such file or directory"错误,如图(1)所示:

但是,将工程由Release版本改回到Debug版本,却编译成功。从而判断是Release、Debug这2个版本的编译环境有差异。
出现该问题的原因是:Release版本没有配置对应的头文件路径。
解决方法:右键工程–> 属性 --> 选择Release版本 --> C/C++ --> 常规–》附加包含目录,添加对应的头文件即可。
方法一 通过属性页进行修改
本例是addFunc.h的头文件路径: …\\myCommon要添加到C/C++ 附件包含目录里,如图(2)所示:

编译时,选中Release版本进行编译,如图(3)、图(4)所示。


效果如下:

方法二 通过*.vcxproj进行修改
*.vcxproj是VS工程的路径配置文件,里面有Release、Debug的环境配置项,如下:
// *.vcxproj
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
//..
<AdditionalIncludeDirectories>..\\myCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
//..
<AdditionalIncludeDirectories>..\\myCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
AdditionalIncludeDirectories 是附加包含目录的配置项,在里面填写头文件路径即可。
2.1 判断include目录与*.vcxproj的路径关系
此处的include目录,特指myCommon,进入calcOne所在的项目根目录(*.sln目录),使用tree /f查看路径关系:
## 进入项目根目录
cd calcOne
## 查看路径关系
tree /f

2.2 填写include目录
由图(6)可知,需要填写的include目录为:..\\myCommon,把它填入AdditionalIncludeDirectories 里即可,如图(7)所示:

以上是关于解决“VS 报No such file or directory“问题的主要内容,如果未能解决你的问题,请参考以下文章