【Spiffo】防傻防呆Tips——Unrecognized parameter: “make“问题解决

文章讲述了如何在VSCode中使用Bear工具生成compile_commands.json文件时遇到的Unrecognizedparameter错误,指出从bear3.0.18版本开始,命令格式变化为bear--<build-command>,并建议关注官方版本更新以确保正确操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

摘要:

        使用bear生成compile_commands.json文件辅助vscode进行工程分析时Unrecognized parameter: "make"的解决方法

1、现象:
根据早些时候的教程,我们生成该文件时会在内核目录下使用如下指令进行操作:

bear make

于是出现上述信息

2、问题解决

        问题很简单,根据官方描述(传送门-->GitHub - rizsotto/Bear: Bear is a tool that generates a compilation database for clang tooling.),至少在3.0.18版本的bear中,格式更新为

bear -- <your-build-command>

        举个例子,比如这样

bear -- make 

        我们来尝试一下效果

                (1)键入指令(ARCH和CROSS_COMPILE的指定是因为我用的生肉Linux进行演示,如果已经配置好,不需要再指定参数)

                (2)稍等片刻等它编译完成

                        如图所示,所需的文件就出来了

3、总结

        指令会随版本更新变动,注意查看官方发布的信息以及对应的报错内容检查操作是否正确

<think>嗯,用户遇到了Elasticsearch请求中包含未识别参数[seq_no_primary_term]的错误,需要解决这个问题。首先,我得弄清楚这个参数是做什么用的,为什么会报错。根据引用[^1]的信息,错误是因为尝试指定了无效参数,所以可能这个参数在当前的Elasticsearch版本中不被支持或者已经被弃用了。 接下来,我应该回忆一下Elasticsearch的文档。记得seq_no和primary_term是用于乐观并发控制的,用来确保文档的版本控制。可能用户在使用某个API的时候,错误地添加了这个参数,而该API并不支持它。比如,在索引文档时,如果使用旧版本的Elasticsearch或者某些特定的API,可能不支持这个参数。 需要检查用户使用的Elasticsearch版本。如果版本较旧,可能不支持seq_no_primary_term参数。比如,这个参数是在某个特定版本之后引入的,或者在某个版本之后被弃用,改用其他参数。同时,确认用户使用的API是否应该包含这个参数。例如,在更新文档时,正确的参数应该是if_seq_no和if_primary_term,而不是seq_no_primary_term。 然后,可能的解决方案包括:检查并更正参数名称,确认Elasticsearch的版本是否支持该参数,或者调整API的使用方式。例如,用户可能是在索引请求中错误地添加了seq_no_primary_term,而正确的做法是在更新文档时使用if_seq_no和if_primary_term参数来指定版本控制。 另外,可能需要检查请求体的格式是否正确,是否有拼写错误。比如,是否应该将参数放在URL中而不是请求体内,或者相反。同时,建议用户查阅官方文档,确认参数的正确使用方式和适用的API。 最后,生成相关问题的时候,需要考虑用户可能进一步的问题,比如如何启用seq_no和primary_term,如何进行版本控制,或者如何升级Elasticsearch版本等。</think>### 问题分析 Elasticsearch请求中遇到`unrecognized parameter [seq_no_primary_term]`错误,通常是由于以下原因: 1. **参数名称错误**:参数`seq_no_primary_term`可能拼写错误或格式不符合要求[^1]; 2. **版本兼容性问题**:旧版本Elasticsearch(如7.x之前)不支持此参数; 3. **API不匹配**:参数未正确用于支持的API操作(如`index`、`update`等)。 --- ### 解决方案 #### 1. 确认参数名称与格式 `seq_no_primary_term`需以`if_seq_no`和`if_primary_term`形式使用,例如: ```json PUT /index/_doc/1?if_seq_no=5&if_primary_term=1 { "field": "value" } ``` 若直接使用`seq_no_primary_term`会触发语法错误[^1]。 #### 2. 检查Elasticsearch版本 - **7.x及以上版本**:支持通过`if_seq_no`和`if_primary_term`实现乐观并发控制; - **6.x及以下版本**:需改用`version`参数进行版本控制。 升级命令示例: ```bash # 使用Elasticsearch官方仓库升级 sudo apt-get update && sudo apt-get install elasticsearch ``` #### 3. 验证API适用性 `if_seq_no`和`if_primary_term`仅适用于以下操作: - `PUT /<index>/_doc/<_id>` - `POST /<index>/_update/<_id>` 错误示例(错误位置): ```json GET /index/_search { "seq_no_primary_term": true // 无效的API上下文 } ``` --- ### 最终修正示例 ```json PUT /my_index/_doc/1?if_seq_no=3&if_primary_term=2 { "title": "Elasticsearch Guide" } ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值