cmake错误显示在cygwin终端上运行时不存在的文件夹

时间:2014-07-18 10:51:01

标签: c++ cmake cygwin

我正在尝试使用cmake在cygwin(在Windows 8中)编译c ++库g2o。我创建了一个构建文件夹,当我尝试在该文件夹中执行cmake时,它失败并出现以下错误

$ cmake ../
-- The C compiler identification is GNU 4.8.3
-- The CXX compiler identification is GNU 4.8.3
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- broken
CMake Error at /usr/share/cmake-2.8.11.2/Modules/CMakeTestCCompiler.cmake:61 (message):
  The C compiler "/usr/bin/cc" is not able to compile a simple test program.

  It fails with the following output:

   Change Dir: /cygdrive/b/g2o/trunk/build/CMakeFiles/CMakeTmp



  Run Build Command:/cygdrive/c/Program\
  Files/MATLAB/R2009a/bin/win64/gmake.exe "cmTryCompileExec3795381385/fast"

  C:/Program Files/MATLAB/R2009a/bin/win64/gmake -f
  CMakeFiles/cmTryCompileExec3795381385.dir/build.make
  CMakeFiles/cmTryCompileExec3795381385.dir/build

  gmake[1]: Entering directory `B:/g2o/trunk/build/CMakeFiles/CMakeTmp'

  /usr/bin/cmake.exe -E cmake_progress_report "/cygdrive/b/g2o/trunk/build/CMakeFiles/CMakeTmp/CMakeFiles" 1

  Building C object
  CMakeFiles/cmTryCompileExec3795381385.dir/testCCompiler.c.o

  /usr/bin/cc -o CMakeFiles/cmTryCompileExec3795381385.dir/testCCompiler.c.o
  -c "/cygdrive/b/g2o/trunk/build/CMakeFiles/CMakeTmp/testCCompiler.c"

  Linking C executable cmTryCompileExec3795381385.exe

  /usr/bin/cmake.exe -E cmake_link_script
  CMakeFiles/cmTryCompileExec3795381385.dir/link.txt --verbose=1

  gmake[1]: Leaving directory `B:/g2o/trunk/build/CMakeFiles/CMakeTmp'

  process_begin: CreateProcess(NULL, /usr/bin/cmake.exe -E cmake_link_script
  CMakeFiles/cmTryCompileExec3795381385.dir/link.txt --verbose=1, ...)
  failed.

  make (e=2): The system cannot find the file specified.

  gmake[1]: *** [cmTryCompileExec3795381385.exe] Error 2

  gmake: *** [cmTryCompileExec3795381385/fast] Error 2

  CMake will not be able to correctly generate this project.
 Call Stack (most recent call first):
 CMakeLists.txt:4 (PROJECT)


-- Configuring incomplete, errors occurred!

这里有趣的是我在我的机器上安装了cmake 3.0,错误说cmake 2.8.11.2。我在电脑上进行了搜索,但找不到该名称的任何文件夹。系统路径变量还包含纠正cmake bin文件夹的路径。

我无法弄清楚这个错误背后的原因是什么。这可能是cygwin本身的一个问题吗?我该怎么做才能避免这个错误?

1 个答案:

答案 0 :(得分:0)

有一点需要注意,Cygwin拥有自己的CMake副本,这就是你所看到的2.8.11.2。该版本与您在Windows机器上的版本无关。您是否尝试使用Windows安装版本而不是Cygwin?

我认为问题来自于没有在Cygwin中安装所有必需的编译器库。您可以尝试创建一个简单的C ++文件,并尝试直接使用gcc编译它。如果失败了,你现在已经发现了CMake失败的原因。

除非有充分的理由这样做,否则你应该考虑不使用Cygwin在Windows中运行CMake。 CMake非常有能力生成Visual Studio项目文件。