在Windows上使用CMake和Eclipse CDT以及Cygwin

时间:2015-01-26 10:16:14

标签: cmake cygwin eclipse-cdt

对于我们想要使用CMake的新项目。我们使用Eclipse CDT作为IDE和Cygwin gcc。

我们生成了CMakeLists.txt并遵循[本教程(选项2)] [1]。

当我尝试运行描述的Make目标以生成带有CMake的Makefile时,执行

cmake -E chdir C:/projects/eclipse_ws/MyApp/Build/ cmake -G "Unix Makefiles" ../ Run CMake 

我收到错误

CMake Error: The source directory "C:/projects/eclipse_ws/MyApp/Build/CMake" does not exist.

如果我直接从Cygwin控制台运行命令它运行正常,但是我必须从Cygwin控制台运行make,因为Makefile是用Unix路径生成的。

修改

所以我解决了这个问题(请参阅下面的答案)。

但我仍然遇到问题。

当我尝试按照教程中的建议在Eclipse中运行CMake作为Make目标时,我收到以下错误:

cmake -E chdir Build/ cmake -G 'Unix Makefiles' ../ 
-- The C compiler identification is unknown
-- The CXX compiler identification is unknown
System is unknown to cmake, create:
Platform/MINGW32_NT-6.1 to use this system, please send your config file to cmake@www.cmake.org so it can be added to cmake
Your CMakeCache.txt file was copied to CopyOfCMakeCache.txt. Please send that file to cmake@www.cmake.org.
-- Check for working C compiler: /usr/bin/gcc.exe
System is unknown to cmake, create:
Platform/MINGW32_NT-6.1 to use this system, please send your config file to cmake@www.cmake.org so it can be added to cmake
-- Check for working C compiler: /usr/bin/gcc.exe -- broken
CMake Error at /usr/share/cmake-2.8.9/Modules/CMakeTestCCompiler.cmake:52 (MESSAGE):
  The C compiler "/usr/bin/gcc.exe" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: /cygdrive/c/projects/eclipse_ws/MyApp/Build/CMakeFiles CMakeTmp

  Run Build Command:/usr/bin/make.exe "cmTryCompileExec726566634/fast"

  /usr/bin/make -f CMakeFiles/cmTryCompileExec726566634.dir/build.make
  CMakeFiles/cmTryCompileExec726566634.dir/build

  make[1]: Entering directory
  '/cygdrive/c/projects/eclipse_ws/MyApp/Build/CMakeFiles/CMakeTmp'

  /usr/bin/cmake.exe -E cmake_progress_report
  /cygdrive/c/projects/eclipse_ws/MyApp/Build/CMakeFiles/CMakeTmp/CMakeFiles
  1

  Building C object
  CMakeFiles/cmTryCompileExec726566634.dir/testCCompiler.c.obj

  /usr/bin/gcc.exe -o
  CMakeFiles/cmTryCompileExec726566634.dir/testCCompiler.c.obj -c
  /cygdrive/c/projects/eclipse_ws/MyApp/Build/CMakeFiles/CMakeTmp/testCCompiler.c

  CMakeFiles/cmTryCompileExec726566634.dir/build.make:60: recipe for target
  'CMakeFiles/cmTryCompileExec726566634.dir/testCCompiler.c.obj' failed

  make[1]: Leaving directory
  '/cygdrive/c/projects/eclipse_ws/MyApp/Build/CMakeFiles/CMakeTmp'

  make[1]: *** [CMakeFiles/cmTryCompileExec726566634.dir/testCCompiler.c.obj]
  Error 1

  Makefile:117: recipe for target 'cmTryCompileExec726566634/fast' failed

  make: *** [cmTryCompileExec726566634/fast] Error 2

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

-- Configuring incomplete, errors occurred!

似乎因为某种原因,CMake假设我有一个MinGW环境,而不是Cygwin。

EDIT2 假设MinGW系统,因为在使用Cygwin和Git的uname命令(返回MinGW)之前,Git安装在PATH中。

1 个答案:

答案 0 :(得分:0)

如果在Eclipse的Make对话框中选中“Make Target - 与目标名称相同”,Eclipse将添加

Run CMake

命令(见问题),由CMake误解。 我只是取消选中“与目标名称相同”。