cmake - 尝试构建库时的 CMAKE_AR-NOTFOUND (MinGW)
问题描述
我使用 VS Code、CMake Tools、Ninja 和 MinGW 作为我的编译器。
尝试构建静态库时,命令行输出显示为:
[build] cmd.exe /C "cd . && "C:\Program Files\CMake\bin\cmake.exe" -E rm -f libTest.a && CMAKE_AR-NOTFOUND qc libTest.a CMakeFiles/Test.dir/Test.cpp.obj && cd ."
[build] 'CMAKE_AR-NOTFOUND' is not recognized as an internal or external command,
我假设找不到 ar.exe 库存档器,但是我可以编译一个正常的程序就好了,并且在与 g++.exe(bin 文件夹)相同的位置确实有一个 ar.exe 可执行文件。
为什么 Cmake/Ninja 找不到存档器?
解决方案
&&
%ERRORLEVEL%
in between commands 表示如果第一个命令完成且没有错误( = 0),则将执行第二个命令
第一行包含&& CMAKE_AR-NOTFOUND
作为CMAKE_AR-NOTFOUND
命令运行的方式(后面有参数)。
您收到的错误表示此命令或可执行文件不存在。
看起来 CMake 为ar
工具路径设置了这个值,因为它找不到它。
当使用 CMake 配置项目时,您必须确保ar.exe
可以在PATH
.
它应该包含在 MinGW 中。
有关 MinGW-w64 的最新独立版本(用于 win32 和 win64),请参阅:http ://winlibs.com/
推荐阅读
- node.js - 当使用 .catch 检测到错误时,我可以提前结束某些事情吗?
- python - Odoo 服务器错误:smtplib.SMTPServerDisconnected:请先运行 connect()
- macos - 在系统路径后添加库路径
- java - findviewbyid 在公共静态类 android java 中不起作用
- reactjs - ReactJS 钩子无法更新状态
- flutter - InheritedWidget 是否应该始终是 StatefulWidget 的子级?
- swift - 在 Swift 中 - 表达式的类型是模棱两可的,没有更多的上下文
- flutter - How to Center a Positioned() horizontally in Flutter
- excel - 有人可以帮我缩短这段代码吗?
- postgresql - 如何将 postgresql 中 jsonb_path_query 的结果聚合到数组中?