CMAKE错误:“无法打开源文件”:'CMakeCCompilerId.c'

时间:2019-01-11 23:44:04

标签: c++ cmake

我正在尝试运行在Windows和Linux上均可运行的CMAKE项目。当我尝试运行CMAKE生成生成文件时,出现以下错误:

enter image description here

我检查了此错误的其他帖子,其中大多数建议重新安装Visual Studio,但这无济于事。

检查错误日志给了我这个

Compiling the C compiler identification source file "CMakeCCompilerId.c" failed.
Compiler:  
Build flags: 
Id flags:  

The output was:
1
Microsoft (R) Build Engine version 15.9.21+g9802d43bc3 for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 1/11/2019 15:31:21.
Project "C:\Users\user\Documents\projects\dsa_opengl_examples\build\CMakeFiles\3.13.2\CompilerIdC\CompilerIdC.vcxproj" on node 1 (default targets).
PrepareForBuild:
  Creating directory "Debug\".
  Creating directory "Debug\CompilerIdC.tlog\".
InitializeBuildStatus:
  Creating "Debug\CompilerIdC.tlog\unsuccessfulbuild" because "AlwaysCreate" was specified.
ClCompile:
  C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\CL.exe /c /nologo /W0 /WX- /diagnostics:classic /Od /D _MBCS /Gm- /EHsc /RTC1 /MDd /GS /fp:precise /Zc:wchar_t /Zc:forScope /Zc:inline /Fo"Debug\\" /Fd"Debug\vc141.pdb" /Gd /TC /FC /errorReport:queue CMakeCCompilerId.c
  CMakeCCompilerId.c
c1 : fatal error C1083: Cannot open source file: 'CMakeCCompilerId.c': No such file or directory [C:\Users\user\Documents\projects\dsa_opengl_examples\build\CMakeFiles\3.13.2\CompilerIdC\CompilerIdC.vcxproj]
Done Building Project "C:\Users\user\Documents\projects\dsa_opengl_examples\build\CMakeFiles\3.13.2\CompilerIdC\CompilerIdC.vcxproj" (default targets) -- FAILED.

Build FAILED.

"C:\Users\user\Documents\projects\dsa_opengl_examples\build\CMakeFiles\3.13.2\CompilerIdC\CompilerIdC.vcxproj" (default target) (1) ->
(ClCompile target) -> 
  c1 : fatal error C1083: Cannot open source file: 'CMakeCCompilerId.c': No such file or directory [C:\Users\user\Documents\projects\dsa_opengl_examples\build\CMakeFiles\3.13.2\CompilerIdC\CompilerIdC.vcxproj]

    0 Warning(s)
    1 Error(s)

Time Elapsed 00:00:01.02

有人知道我该如何解决 c1 : fatal error C1083: Cannot open source file: 'CMakeCCompilerId.c': No such file or directory 错误?

2 个答案:

答案 0 :(得分:0)

经过3个小时的搜索,我终于找到了a (partial) solution。它只说:

  • 将项目文件夹(带有CMakeLists.txt的文件夹)复制粘贴到桌面。
  • 导航到那里,然后再次运行cmake命令。
  • 行得通!

为什么它不能在桌面上正常工作?没有线索。我认为这是一个权限问题,所以我最大化了原始文件夹的权限。 (授予“所有人”和我自己完整的权限+授予我自己文件夹和子文件夹的所有权。)没有区别。

猜猜我们只需要解决将我的项目放在C:\Users\Myname\下的某个地方即可。

如果那不能解决您的问题,我发现了其他一些解决方案:

  • Reinstalling cmake
  • 将cmake降级到3.14.x
  • 重新安装VS
  • 确保指定正确的生成文件生成器。 (例如,如果您调用cmake -G "Visual Studio 12" .,则是指VS 2013(VS 12 = VS 2013)。有关所有生成器,请参见cmake --help。)

答案 1 :(得分:0)

我有同样的问题。

跟随@ serg06链接到the partial solution(并将其翻译成中文)之后,我找到了解决方法:

我使用的是来自WSL的git和来自cmd的cmake,不确定为什么会出现问题,但是为Windows安装git并从cmd重新克隆我的存储库可以解决此问题。 希望有帮助!