【问题标题】:Multiple errors C1083 despite the correctness of path and rights尽管路径和权限正确,但出现多个错误 C1083
【发布时间】:2019-06-25 01:46:52
【问题描述】:

我正在使用 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文件。单个 cpp 文件的右键单击 + 编译 (alt+F7) 会导致相同的错误。但对于其中少数人来说,还有一个 E1696 错误

严重性代码描述项目文件行抑制状态错误 (active) E1696 无法打开源文件 "I:\OPENCV-MASTER\OPENCV\3RDPARTY\OPENEXR\ILMTHREAD\ILMTHREADMUTEX.CPP" IlmImf 0
严重性代码 描述 项目文件行抑制状态 错误 C1083 无法打开源文件: '我:\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

【问题讨论】:

  • IlmThreadWin32.c pp 在您的实际vcxproj 文件中cpp 之间是否有空格,或者这只是复制粘贴错误?
  • 在项目树中双击文件可以打开吗?
  • 请注意,编译时编译器不会尝试打开项目中提到的头文件,因此您不会看到任何错误。
  • @molbdnilo 好吧,是的,也不是。 如果它们不是预编译头文件的一部分并且打开任何.cpp 失败,那么是的,它不会打开它们。
  • @DanMašek 这就是重点,在 opencv 上工作。实际上它适用于从zip下载的master,用powershell解压; git clone/pull 是从 WSL 完成的,但 cmake 是从 powershell 执行的。这对我来说没有意义。我会尝试发布源并提供反馈。

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


【解决方案1】:

当我 git pull/clone 使用 linux 版本 (WSL),但 不是 Windows 版本(与 Visual Studio 一起打包)时,问题就出现了。它可能是一个不可打印的字符或其他东西,因为这在 opencv-master 4.0.0 开头的 linux git 上没有发生。

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

【讨论】:

    猜你喜欢
    • 2015-11-27
    • 1970-01-01
    • 2019-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-12
    • 2014-12-06
    相关资源
    最近更新 更多