【问题标题】:Can't get CMAKE to compile a project无法让 CMAKE 编译项目
【发布时间】:2018-07-10 22:32:50
【问题描述】:

这是我得到的错误:

-- Building for: NMake Makefiles
-- The C compiler identification is GNU 4.8.1
-- The CXX compiler identification is GNU 4.8.1
-- Check for working C compiler: C:/MinGW/bin/gcc.exe
CMake Error: Generator: execution of make failed. Make command was: "nmake" "/NOLOGO" "cmTC_86068\fast"
-- Check for working C compiler: C:/MinGW/bin/gcc.exe -- broken
CMake Error at C:/Program Files (x86)/CMake/share/cmake-3.4/Modules/CMakeTestCCompiler.cmake:61 (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:/--REDACTED--/CMakeFiles/CMakeTmp



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

The system cannot find the file specified

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





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


-- Configuring incomplete, errors occurred!
See also "C:/--REDACTED--/socket.io-client-cpp-1.6.1/CMakeFiles/CMakeOutput.log".
See also "C:/--REDACTED--/socket.io-client-cpp-1.6.1/CMakeFiles/CMakeError.log".

我正在使用的记录:

  • 来自 MinGW 4.8.1 的 gcc 和 g++
  • CMake 3.4.1

我不知道可能是什么问题,我已经在网上进行了广泛的查找,但没有找到任何人得到解决方案的地方,除非它与路径包含非拉丁字符的路径问题有关或没有写访问权限,对于任何有问题的目录都不是这种情况。我真的要完全放弃让它工作了,但我不知道该怎么做,因为我绝对需要这个项目的 C++ 的 socket.io 客户端。

【问题讨论】:

    标签: c++ gcc cmake g++ mingw


    【解决方案1】:

    CMake 是一个实用程序,可为不同的构建系统生成“makefile”。在这里,您生成了一个 nmake makefile,并且您的路径中似乎没有 nmake。

    您可以使用选项-G "MinGW Makefiles" 启动 CMake,以生成与 mingw make 兼容的 makefile。然后发出命令:

    mingw32-make
    

    【讨论】:

    • nmake 是像 gcc 和 g++ 这样的 .exe 吗?它是 MinGW 的一部分吗?
    • nmake 是 Microsoft 的 Visual Studio 的一部分。使用 mingw,您应该有一个与 gmake 兼容的应用程序。我会更新答案。
    • 我尝试使用 mingw32-make 代替 nmake,结果如下:C 编译器“C:/MinGW/bin/gcc.exe”无法编译简单的测试程序。它失败并显示以下输出: Change Dir: C:/Users/p63053/Desktop/FreeLoader Downloads/socket.io-client-cpp-1.6.1/socket.io-client-cpp-1.6.1/CMakeFiles/CMakeTmp Run构建命令:“mingw32-make”“/NOLOGO”“cmTC_5618c\fast”Makefile:38:***缺少分隔符。停止。
    • 我需要澄清一下,因为当我执行 cmake -G "MinGW MakeFiles" ./ 它甚至没有尝试制作它时,它说'无法创建命名生成器 MinGW MakeFiles "
    • @ClintonJ cmake --help 将为您输出确切的面额,以提供给 -G 选项。
    猜你喜欢
    • 2018-11-16
    • 2017-09-13
    • 1970-01-01
    • 2018-07-04
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-08
    相关资源
    最近更新 更多