【问题标题】:macOS llvm can't find stdio.h anymoremacOS llvm 再也找不到 stdio.h
【发布时间】:2021-06-13 21:52:36
【问题描述】:

我遇到了一个奇怪的问题来找你。 所以上周,我为一个 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。

【问题讨论】:

  • 您是否安装了 Big Sur 版本的 XCode(仍然)?如果没有,请尝试重新安装它。如果是这样,您可能没有使用 XCode clang,您可能需要升级您正在使用的 clang。此外,您的 CPATH 值末尾有 /usr/include — 您是否尝试过删除 /include,甚至是 /usr/include?我认为 CPATH 不仅仅是指向标头的路径(但我还没有彻底调查过)。
  • @JonathanLeffler 感谢您的回答。我确实使用了正确的 clang:% clang --version clang version 11.1.0 Target: x86_64-apple-darwin20.3.0 Thread model: posix InstalledDir: /usr/local/opt/llvm/bin 我尝试缩短包含以删除 usr/include,但它也不起作用。我也跑了brew update &amp;&amp; brew upgrade,一切都是最新的。

标签: c macos visual-studio-code clang llvm


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-01-04
    • 2020-10-12
    • 2019-01-16
    • 2021-06-07
    • 2013-09-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    相关资源
    最近更新 更多