为什么find_package(MPI)触发CMake警告?是配置问题还是CMake内部bug?
问题结论
这个警告和你CMakeLists.txt中的配置完全无关,属于CMake 3.22.0-rc2这个预览版本的内部bug。
原因说明
- 警告触发的根源是CMake自带的内置模块逻辑错误:
FindMPI.cmake在间接调用FindPkgConfig.cmake时,没有正确处理find_package_handle_standard_args的包名上下文校验规则,导致校验逻辑误以为包名不匹配才抛出了警告。 - 该问题仅存在于3.22.0的几个预览候选版本中,3.22.0正式版以及后续所有更高版本的CMake都已经修复了这个问题,不需要你修改任何项目代码就能解决。
- 如果你暂时不打算升级CMake版本,直接使用
-Wno-dev参数屏蔽开发类警告也不会影响MPI的正常查找、编译和链接逻辑,不会对你的项目构建产生副作用。
内容的提问来源于stack exchange,提问作者einpoklum
相关产品推荐
相关产品推荐

