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 开发者工具。
我最终卸载了 llvm
和 libomp
,当重新安装时它告诉我 brew 没有 CLT
(使用 brew config
来检查)。
然后我 运行 经典 xcode-select --install
然后 brew install llvm
和 brew install libomp
,编辑我的路径以包含 llvm 的 bin 并且它再次工作。
我的解决方案:
- masOS12.3.1 蒙特雷
"软件更新" --> "更新 commandLineTool" 如果推送 --> 你可以正确编译而不 'stdio.h' 找不到文件。
我带着一个我一直面临的奇怪问题来找你。 所以上周,我为一个 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
这让我目瞪口呆,因为几天前它运行良好。 我尝试使用
导出 CPATHexport CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
但我收到了一堆警告,但它也没有用。 非常感谢任何帮助!
信息:我是 运行 最新版本的 BigSur 和 VSCode。
显然 macOS 更新卸载了 XCode 开发者工具。
我最终卸载了 llvm
和 libomp
,当重新安装时它告诉我 brew 没有 CLT
(使用 brew config
来检查)。
然后我 运行 经典 xcode-select --install
然后 brew install llvm
和 brew install libomp
,编辑我的路径以包含 llvm 的 bin 并且它再次工作。
我的解决方案:
- masOS12.3.1 蒙特雷
"软件更新" --> "更新 commandLineTool" 如果推送 --> 你可以正确编译而不 'stdio.h' 找不到文件。