首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >新的CMake版本会产生奇怪的命令行和警告。

新的CMake版本会产生奇怪的命令行和警告。
EN

Stack Overflow用户
提问于 2022-04-20 13:47:37
回答 1查看 1.6K关注 0票数 0

在Ubuntu-18.04LTS和20.04LTS下,我已经用CMake构建了一个(供应商提供的)包大约一年了,但是在最近的升级(cmakeVersion3.23.1)之后,一些东西发生了变化,出现了许多奇怪的异常。我想知道下面的任何一个看起来都很眼熟,是否有一个简单的修复方法?

代码语言:javascript
运行
复制
CMake Warning:
  Ignoring extra path from command line:
  "Export compile commands"

我可以看出这是因为我正在生成一个build.make文件,其中包含

代码语言:javascript
运行
复制
-DCMAKE_EXPORT_COMPILE_COMMANDS=ON CACHE INTERNAL FORCE "Export compile commands"

它反过来来自于default.cmake中的这个片段

代码语言:javascript
运行
复制
set(CMAKE_EXPORT_COMPILE_COMMANDS ON
    CACHE INTERNAL FORCE
    "Export compile commands")

但是,我不明白(作为一个受恐吓的新手CMake用户)为什么最近停止正常工作,并开始提供这些警告消息。我可以忽略这些警告,但我不确定其他坏事情也不会发生。

我能做些什么(除非等待供应商发布补丁,谁知道什么时候会发生),这样才能让我的构建重新正常工作吗?

EN

回答 1

Stack Overflow用户

发布于 2022-04-20 17:34:42

FORCEset命令的最后一个参数。

代码语言:javascript
运行
复制
set(CMAKE_EXPORT_COMPILE_COMMANDS ON
    CACHE INTERNAL FORCE
    "Export compile commands")

使用文档"FORCE"创建缓存变量,并列出一个与pattern of set(CACHE) usage不匹配的附加参数"Export compile commands"

集(.缓存力)

将代码片段更改为

代码语言:javascript
运行
复制
set(CMAKE_EXPORT_COMPILE_COMMANDS ON
    CACHE INTERNAL
    "Export compile commands" FORCE)

警告应该是固定的。您还可以完全删除FORCE,因为FORCE是由INTERNAL类型隐含的。

代码语言:javascript
运行
复制
set(CMAKE_EXPORT_COMPILE_COMMANDS ON
    CACHE INTERNAL
    "Export compile commands")
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71940882

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档