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

编译带pcre2特性的ripgrep时,如何为cc添加-std=c99标志?

解决ripgrep编译时C99模式错误的办法

直接通过环境变量传编译标志

最快捷的方式是在编译命令前加上CFLAGS="-std=c99",让Cargo把这个标志传给cc编译器:

CFLAGS="-std=c99" cargo build --release --features 'pcre2'

要是需要用到GNU扩展的C99特性,把-std=c99换成-std=gnu99就行。

用Cargo配置文件永久生效

不想每次编译都敲环境变量的话,在ripgrep项目目录下新建或修改.cargo/config.toml,添加以下内容:

[build]
rustflags = ["-C", "link-arg=-std=c99"]

如果想让这个配置全局生效,就修改用户主目录下的~/.cargo/config.toml文件。

更精准的方式是针对特定目标架构设置C编译标志,比如x86_64 Linux系统,在配置文件里加:

[target.x86_64-unknown-linux-gnu]
cflags = ["-std=c99"]

清理依赖后重新编译

如果上面的方法没用,先清理已编译的依赖文件,再重新编译:

cargo clean
CFLAGS="-std=c99" cargo build --release --features 'pcre2'

内容的提问来源于stack exchange,提问作者m.raynal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 14:58:12