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

macOS下安装Criterion后编译提示头文件找不到的问题求助

在M1 MacBook Air(macOS Ventura 13.1)上解决Criterion编译找不到头文件的问题

问题原因

M1架构Mac上,Homebrew默认将软件安装在/opt/homebrew目录下,但Apple Clang和系统默认编译器的搜索路径不包含该目录,导致无法定位Criterion的头文件与库文件。

解决方案

方案1:编译时手动指定路径

直接在编译命令中添加头文件搜索路径(-I)和库搜索路径(-L):

  • 针对Apple Clang(系统gcc实际为clang):
gcc -o test test.c -I/opt/homebrew/include -L/opt/homebrew/lib -lcriterion
  • 针对Homebrew安装的GCC 12:
/opt/homebrew/bin/gcc-12 -o test test.c -I/opt/homebrew/include -L/opt/homebrew/lib -lcriterion

方案2:用pkg-config自动获取编译参数

pkg-config可自动读取Criterion的编译配置,无需手动写路径:

  1. 先验证pkg-config能识别Criterion:
pkg-config --cflags --libs criterion

正常输出应为:-I/opt/homebrew/include -L/opt/homebrew/lib -lcriterion
2. 执行编译命令:

gcc -o test test.c $(pkg-config --cflags --libs criterion)

方案3:永久添加Homebrew路径到环境变量

若不想每次编译都手动指定路径,可将Homebrew路径加入编译器默认搜索路径:

  1. 打开shell配置文件(如~/.zshrc或~/.bashrc),添加以下内容:
export C_INCLUDE_PATH="/opt/homebrew/include:$C_INCLUDE_PATH"
export LIBRARY_PATH="/opt/homebrew/lib:$LIBRARY_PATH"
export LD_LIBRARY_PATH="/opt/homebrew/lib:$LD_LIBRARY_PATH"
  1. 保存后执行以下命令生效:
source ~/.zshrc  # zsh用户执行此命令
# 或
source ~/.bashrc  # bash用户执行此命令

之后直接用最初的命令编译即可:gcc -o test test.c -lcriterion

验证安装

编译完成后运行测试程序:

./test

可看到Criterion的测试输出,包含1个失败用例和1个通过用例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 09:00:39