解决“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)所示:

图(1) Release版本报"No such file or directory"错误

    但是,将工程由Release版本改回到Debug版本,却编译成功。从而判断是Release、Debug这2个版本的编译环境有差异。

    出现该问题的原因是:Release版本没有配置对应的头文件路径。
    解决方法:右键工程–> 属性 --> 选择Release版本 --> C/C++ --> 常规–》附加包含目录,添加对应的头文件即可。

方法一 通过属性页进行修改

    本例是addFunc.h的头文件路径: …\\myCommon要添加到C/C++ 附件包含目录里,如图(2)所示:

图(2)在属性页里,选中Release版本,并添加对应的头文件路径

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

图(3) 编译时要选中Release版本

图(4) 工具栏里的版本要与属性页里的版本保持一致

    效果如下:

图(5) Release版本编译成功

方法二 通过*.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
图(6) 判断include路径与*.vcxproj的路径关系

2.2 填写include目录

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

图(7) 填写include路径

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

vs2008解决方案资源管理器不显示解决方案

什么是 沙盒解决方案

解决PowerShell乱码问题

如何解决解决方案中现有项目的c#CS0006错误

关于问题解决与事件解决的思考

「解决方案架构」解决方案架构概述