最近帮忙调试工程项目的时候发现拿到别人工程项目时编译总是报C1083错误无法打开包括的文件,但是真实的项目中,这些头文件以及相应的依赖库都存在,分析原因,主要是包含的路径不对,整理网上的回答,希望不要继续踩坑。
1. 问题描述
在拿到别人工程项目的时候,编译一直报如下图这样的错误:
但是实际上我的项目中确实有相应的头文件,而且在vs的项目文件.vcxproj如下图所示中相对路径却是正确的
本工程导入之前在别人电脑上是能够正常运行的。
2. 问题分析
因为报错是找不到对应的头文件,而头文件确实存在,而且项目的相对路径是正确的,但编译仍然报错,仔细研究之后发现找不到文件是因为工程项目中添加的文件路径是别人电脑上添加的路径,这样在本机电脑上当然就找不到对应的文件了。
3. 解决办法
了解到原因后,解决方式就是需要将对应的文件路径添加到依赖中去,其详细步骤如下:
步骤1:定位报“fatal error C1083: ”错误的文件,找到它所在的目录。
步骤2:添加该项目的附加路径 。
步骤3:重新编译生成,问题可以得到有效解决。
操作过程如图所示:
-
鼠标右键工程——>属性,如下图所示:
-
选择配置属性,在C/C++——>常规选项下,可以看到附加目录包含的路径,虽然.vcxproj中看到的相对路径是没有问题的,但是在这附加包含目录下确实别人电脑中的路径,需要将此处的路径换到你所需要添加的头文件的路径中,如下图所示:
-
将项目的本地路径替换为工程相对路径
选择确定即可解决