c++ - CMake 找不到与“Ninja”对应的构建程序
问题描述
我安装了以下版本和路径的 MacOS Catalina、Cmake、Ninja 和 QtCreator:
[@bin]$ sw_vers -productVersion
10.15.6
[@bin]$ which cmake
/usr/local/bin/cmake
[@bin]$ cmake --version
cmake version 3.18.2
CMake suite maintained and supported by Kitware (kitware.com/cmake).
[@bin]$ which ninja
/usr/local/bin/ninja
我正在尝试使用 Cmake 与 QT 创建者一起构建一个项目。但是,QT Creator 中出现以下消息
Running /usr/local/Cellar/cmake/3.18.2/bin/cmake '-GCodeBlocks - Ninja' -C /private/var/folders/jq/yyp9q2fs1z5780k9l1_2ph4r0000gn/T/QtCreator-HXderc/qtc-cmake-TuClFWan/qtcsettings.cmake /Users/mymac/Documents/programming/Cpp/Qt/try6 in /private/var/folders/jq/yyp9q2fs1z5780k9l1_2ph4r0000gn/T/QtCreator-HXderc/qtc-cmake-TuClFWan.
loading initial cache file /private/var/folders/jq/yyp9q2fs1z5780k9l1_2ph4r0000gn/T/QtCreator-HXderc/qtc-cmake-TuClFWan/qtcsettings.cmake
-- Configuring incomplete, errors occurred!
See also "/private/var/folders/jq/yyp9q2fs1z5780k9l1_2ph4r0000gn/T/QtCreator-HXderc/qtc-cmake-TuClFWan/CMakeFiles/CMakeOutput.log".
CMake Error: CMake was unable to find a build program corresponding to "Ninja". CMAKE_MAKE_PROGRAM is not set. You probably need to select a different build tool.
CMake process exited with exit code 1.
Elapsed time: 00:00.
如几个网站所示(例如这个 SO question,我尝试了以下命令,但它不起作用:
[@bin]$ ln -s /usr/bin/ninja /usr/bin/ninja-build
ln: /usr/bin/ninja-build: Operation not permitted
如评论中所示,我还尝试了以下方法:
[@bin]$ sudo ln -s /usr/bin/ninja /usr/bin/ninja-build
Password:
ln: /usr/bin/ninja-build: Operation not permitted
我也试过:
[@bin]$ sudo ln -s /usr/bin/ninja /usr/local/bin/ninja-build
它没有导致任何错误消息,但 QT creator 中的问题仍然存在
解决方案
推荐阅读
- floating-point - printf 不适用于 LLVM IR 中的浮点数
- python - 如何清除键盘事件缓冲区 pynput.keyboard
- xml - 这是对 xsd:choice 的错误使用吗?
- ios - SwiftUI 列表/目标导航栏标题重影
- java - 带有 ResponseEntity 的 Spring Boot @ExceptionHandler
不工作 - php - SQL 排序规则未正确显示
- node.js - Node js Serial port stops receiving data after a while
- git - Remove GIT from OSX Catalina
- android - AdMob Adaptive/Smart Banner Background Color Android
- android - How can you lock the volume control programmatically