今天在使用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
<ItemDefinitionGroupCondition="'$(Configuration)|$(Platform)'=='Debug|x64'"><ClCompile>
//..
<AdditionalIncludeDirectories>..\myCommon;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories></ClCompile></ItemDefinitionGroup><ItemDefinitionGroupCondition="'$(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路径
版权归原作者 sanqima 所有, 如有侵权,请联系我们删除。