解决“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路径

猜你喜欢

转载自blog.csdn.net/sanqima/article/details/124813518