You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CMakeLists中强制设置-Wno-dev以抑制CPackRPM开发者警告?

解决CMake CPackRPM的(dev)警告无法通过顶层-Wno-dev抑制的问题

我之前也踩过这个坑——明明在顶层CMake配置里加了-Wno-dev,生成RPM包时还是冒出一堆CPackRPM的dev级警告。核心原因其实是:CPack在打包阶段会启动一个独立的CMake进程处理打包逻辑,这个进程不会继承主构建阶段的警告参数。

要彻底解决这个问题,你需要直接告诉CPack,在它启动的CMake进程中带上-Wno-dev参数,具体操作如下:

在你的CMakeLists文件(建议放在顶层,或者专门处理CPack配置的文件中)里,添加这段配置:

# 让CPack调用的CMake进程自动携带-Wno-dev参数,抑制dev级警告
set(CPACK_CMAKE_COMMAND "${CMAKE_COMMAND} -Wno-dev")

记得把这段代码放在include(CPack)或者cpack_add_component这类CPack相关指令之前,这样CPack执行打包流程时,就会用带参数的命令启动CMake,从根源上抑制这些警告。

如果你只是想忽略CPackRPM的路径可重定位警告,而非所有dev级警告,也可以尝试这个更针对性的配置:

# 仅忽略CPackRPM的路径可重定位类警告
set(CPACK_RPM_IGNORE_WARNINGS TRUE)

不过这个参数会忽略所有CPackRPM相关警告,不如第一种方法精准,所以更推荐前者。

内容的提问来源于stack exchange,提问作者SpaceCyclist

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.08 17:03:00