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的编译配置,无需手动写路径:
- 先验证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路径加入编译器默认搜索路径:
- 打开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"
- 保存后执行以下命令生效:
source ~/.zshrc # zsh用户执行此命令 # 或 source ~/.bashrc # bash用户执行此命令
之后直接用最初的命令编译即可:gcc -o test test.c -lcriterion
验证安装
编译完成后运行测试程序:
./test
可看到Criterion的测试输出,包含1个失败用例和1个通过用例。
内容的提问来源于stack exchange,提问作者drawbu
相关产品推荐
相关产品推荐

