无法使用 MinGW 和 git bash 在 Windows 上运行 Cmake

jcu*_*bic 5 windows gcc cmake gnu-make git-bash

我尝试构建gitql

我已经安装了 go、CMake 和 MinGW,并试图让它们在 git bash 下工作,但是当我在 gitql 目录中调用 cmake 时,出现此错误:

-- Building for: NMake Makefiles
-- The C compiler identification is unknown
CMake Error at CMakeLists.txt:14 (PROJECT):
  The CMAKE_C_COMPILER:

    cl

  is not a full path and was not found in the PATH.

  To use the NMake generator with Visual C++, cmake must be run from a shell
  that can use the compiler cl from the command line.  This environment is
  unable to invoke the cl compiler.  To fix this problem, run cmake from the
  Visual Studio Command Prompt (vcvarsall.bat).

  Tell CMake where to find the compiler by setting either the environment
  variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
  the compiler, or to the compiler name if it is in the PATH.


-- Configuring incomplete, errors occurred!
See also "C:/Go/src/github.com/cloudson/gitql/libgit2/CMakeFiles/CMakeOutput.log".
See also "C:/Go/src/github.com/cloudson/gitql/libgit2/CMakeFiles/CMakeError.log".
make: *** [prepare] B??d 1
Run Code Online (Sandbox Code Playgroud)

因此,我尝试使用以下命令从 mingw 指向 gcc:

export CC=/c/MinGW/bin/gcc.exe
Run Code Online (Sandbox Code Playgroud)

当我运行 make 我得到这个错误:

-- Check for working C compiler: C:/MinGW/bin/gcc.exe
CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_14ff0\fast"
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files/CMake/share/cmake-3.7/Modules/CMakeTestCCompiler.cmake:51 (message):
  The C compiler "C:/MinGW/bin/gcc.exe" is not able to compile a simple test
  program.

  It fails with the following output:

   Change Dir: C:/Go/src/github.com/cloudson/gitql/libgit2/CMakeFiles/CMakeTmp



  Run Build Command:"nmake" "/NOLOGO" "cmTC_14ff0\fast"



  Generator: execution of make failed.  Make command was: "nmake" "/NOLOGO"
  "cmTC_14ff0\fast"





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


-- Configuring incomplete, errors occurred!
See also "C:/Go/src/github.com/cloudson/gitql/libgit2/CMakeFiles/CMakeOutput.log".
See also "C:/Go/src/github.com/cloudson/gitql/libgit2/CMakeFiles/CMakeError.log".
make: *** [prepare] B??d 1
Run Code Online (Sandbox Code Playgroud)

如何通知 cmake 使用 make 而不是 nmake?我已经安装了C:\Program Files (x86)\GnuWin32\bin其中的$PATH.

我也试过打电话,cmake -G "MinGW Makefiles"但我有这个错误:

CMake Error: The source directory "C:/Go/src/github.com/cloudson/gitql" does not appear to contain CMakeLists.txt.
Specify --help for usage, or press the help button on the CMake GUI.
Run Code Online (Sandbox Code Playgroud)

was*_*ful 3

cmake -G "MinGW Makefiles"实际上是通知 CMake 您想要使用 MinGW 的正确命令。

为了完整起见,您应该创建一个单独的文件夹,我们将其命名为build,并从中调用 cmake 来进行源外构建:

cd /path/to/build
cmake -G "MinGW Makefiles" /path/to/CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)

这里的问题是存储库中gitql没有提供任何CMakeLists.txt文件,因此您无法使用 CMake 来构建它,除非您创建自己的项目文件。您可以从给定的尝试Makefile,并将其作为拉取请求提出。