macOS llvm 找不到 stdio.h

macOS llvm can't find stdio.h anymore

我带着一个我一直面临的奇怪问题来找你。 所以上周,我为一个 C 项目安装了 llvm 和 libomp,它在我的 makefile 的开头编译得很好:

CC=clang
CFLAGS = -O2 -fopenmp
CFLAGS += -I/usr/local/opt/libomp/include
LDFLAGS = -fopenmp
LDFLAGS += -L /usr/local/opt/libomp/lib

今天打算把那个项目做完,打开vs code(不知道有没有关系),左右加了点代码,想再编译代码的时候测试一下是否一切正常, 它给了我

me@macbookPro% make
clang -c  -O2 -fopenmp -I/usr/local/opt/libomp/include bubble.c -o bubble.o
bubble.c:1:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
         ^~~~~~~~~
1 error generated.
make: *** [bubble.o] Error 1

这让我目瞪口呆,因为几天前它运行良好。 我尝试使用

导出 CPATH
export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

但我收到了一堆警告,但它也没有用。 非常感谢任何帮助!

信息:我是 运行 最新版本的 BigSur 和 VSCode。

显然 macOS 更新卸载了 XCode 开发者工具。

我最终卸载了 llvmlibomp,当重新安装时它告诉我 brew 没有 CLT(使用 brew config 来检查)。

然后我 运行 经典 xcode-select --install 然后 brew install llvmbrew install libomp,编辑我的路径以包含 llvm 的 bin 并且它再次工作。

我的解决方案:

  • masOS12.3.1 蒙特雷

"软件更新" --> "更新 commandLineTool" 如果推送 --> 你可以正确编译而不 'stdio.h' 找不到文件。