尽管路径和权限正确,但仍然存在多个错误C1083

时间:2019-01-31 14:56:36

标签: c++ visual-studio opencv compiler-errors

我正在使用VS2017,工具集v141在Windows 10 x64中编译opencv(主版本)。 VS项目是由cmake生成的。

我遇到多个错误,例如:

  

c1xx:致命错误C1083:无法打开源文件:   'I:\ opencv-master \ opencv \ 3rdparty \ openexr \ IlmThread \ IlmThreadWin32.cpp':没有这样的文件或目录   [I:\ opencv-master \ build \ 3rdparty \ openexr \ IlmImf.vcxproj]

但是,由于以下原因,我不知道该怎么办:

  • 路径是绝对路径,
  • 文件确实存在
  • 读取访问权限正确

此外,在IlmImf.vcxproj中,引用了许多文件,但在错误中仅提及了其中一些文件。只是带有ClCompile标记的文件。

例如,对于文件Half,在C1083错误中仅引用half.cpp

  <ItemGroup>
    <ClInclude Include="I:\opencv-master\opencv\3rdparty\openexr\Half\eLut.h" />
    <ClInclude Include="I:\opencv-master\opencv\3rdparty\openexr\Half\half.h" />
    <ClInclude Include="I:\opencv-master\opencv\3rdparty\openexr\Half\halfFunction.h" />
    <ClInclude Include="I:\opencv-master\opencv\3rdparty\openexr\Half\halfLimits.h" />
    <ClInclude Include="I:\opencv-master\opencv\3rdparty\openexr\Half\toFloat.h" />
    <ClCompile Include="I:\opencv-master\opencv\3rdparty\openexr\Half\half.cpp" />

这是完整的vcxproj文件:https://github.com/mprevot/C1083/blob/master/IlmImf.vcxproj


编辑

我可以在VS2017中打开项目中的每个cpp文件。右键单击+编译(alt + F7)对于单个cpp文件会导致相同的错误。但是对于其中的少数人,还有一个E1696错误

  

严重性代码描述项目文件行抑制状态错误   (活动)E1696无法打开源文件   “ I:\ OPENCV-MASTER \ OPENCV \ 3RDPARTY \ OPENEXR \ ILMTHREAD \ ILMTHREADMUTEX.CPP” IlmImf 0
  严重性代码说明项目文件行抑制状态   错误C1083无法打开源文件:   'I:\ opencv-master \ opencv \ 3rdparty \ openexr \ IlmThread \ IlmThreadMutex.cpp':   没有这样的文件或   目录IlmImf I:\ opencv-master \ build \ 3rdparty \ openexr \ c1xx 1

命令行为:

/MP /GS /TP /W3 /wd"4127" /wd"4251" /wd"4324" /wd"4275" /wd"4512" /wd"4589"
/wd"4018" /wd"4099" /wd"4100" /wd"4101" /wd"4189" /wd"4245" /wd"4305"
/wd"4389" /wd"4701" /wd"4702" /wd"4706" /wd"4800" /wd"4334" /wd"4244"
/wd"4267" /wd"4456" /Gy /Zc:wchar_t
/I"I:\opencv-master\opencv\3rdparty\openexr\IlmImf"
/I"I:\opencv-master\opencv\3rdparty\openexr\Imath"
/I"I:\opencv-master\opencv\3rdparty\openexr\IlmThread"
/I"I:\opencv-master\opencv\3rdparty\openexr\Iex"
/I"I:\opencv-master\build\3rdparty\zlib"
/I"I:\opencv-master\opencv\3rdparty\zlib"
/I"I:\opencv-master\build\3rdparty\openexr"
/I"I:\opencv-master\opencv\3rdparty\openexr\Half"
/I"I:\opencv-master\build" /Gm- /O2 /Ob2
/Fd"I:\opencv-master\build\3rdparty\lib\Release\IlmImf.pdb"
/Zc:inline /fp:precise /D "WIN32" /D "_WINDOWS" /D "_CRT_SECURE_NO_DEPRECATE"
/D "_CRT_NONSTDC_NO_DEPRECATE" /D "_SCL_SECURE_NO_WARNINGS" /D "NDEBUG"
/D "_VARIADIC_MAX=10" /D "CMAKE_INTDIR=\"Release\"" /D "_MBCS"
/errorReport:prompt /WX- /Zc:forScope /GR /Gd /Oi /MD /Fa"Release/"
/EHa /nologo /Fo"IlmImf.dir\Release\" /Fp"IlmImf.dir\Release\IlmImf.pch"
/diagnostics:classic

和其他选项/bigobj

1 个答案:

答案 0 :(得分:0)

当我git使用Linux版本(WSL),但不是Windows版本(Visual Studio附带)时,会发生此问题。这可能是一个无法打印的字符,或者是某种东西,因为在opencv-master 4.0.0的开始版本的Linux from mpl_toolkits import mplot3d上没有发生这种情况。

我不确定是否应该在WSL项目中进行报告。 仍然欢迎任何提示。