好像我的gcc坏了。
当我尝试从PyPI安装软件包时,出现此错误:
./uwsgi.h:165:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
In file included from core/protocol.c:1:
./uwsgi.h:165:10: fatal error: 'stdio.h' file not found
#include <stdio.h>
^~~~~~~~~
1 error generated.
已安装XCode命令行工具:
➜ xcode-select --install
xcode-select: error: command line tools are already installed, use "Software Update" to install updates
并安装了brew中的gcc:
➜ brew install gcc
Warning: gcc 8.2.0 is already installed and up-to-date
To reinstall 8.2.0, run `brew reinstall gcc`
当我尝试识别使用哪个gcc时,我有/usr/bin/gcc
。我认为它是XCode版本。
但是brew中没有gcc二进制文件:
➜ ls /usr/local/bin/gcc-*
/usr/local/bin/gcc-8 /usr/local/bin/gcc-ar-8 /usr/local/bin/gcc-nm-8 /usr/local/bin/gcc-ranlib-8
在这种情况下我该怎么办?如何修复gcc?
答案 0 :(得分:4)
正确的答案是在此线程中:https://stackoverflow.com/a/52530212/1377912
默认情况下,新的Xcode不提供标头。您应该手动安装它:
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
答案 1 :(得分:0)
也许这是一个愚蠢的答案,但是您是否尝试过创建并编译一个非常简单的c文件?但是,在我的莫哈韦沙漠系统中,我尝试了gcc -v
命令,并且得到以下输出:
Configured with: --prefix=/Library/Developer/CommandLineTools/usr --with-gxx-include-
dir=/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/usr/include/c++/4.2.1
Apple LLVM version 10.0.0 (clang-1000.10.44.2)
Target: x86_64-apple-darwin18.0.0
Thread model: posix
InstalledDir: /Library/Developer/CommandLineTools/usr/bin
答案 2 :(得分:0)
当我写这个答案时,莫哈韦沙漠已被弃用,现在是大苏尔的时代!但是这个问题依然存在!
我不知道以下命令是否适用于 Mojave,但适用于 Big Sur!如果您仍然有此问题,只需检查一下即可。
只需像这样设置 CFLAGS(对于 C 编译器)或 CXXFLAGS(对于 C++ 编译器):
export CFLAGS="-isysroot $(xcrun --sdk macosx --show-sdk-path) -I/usr/include -L/usr/lib -I$(xcrun --sdk macosx --show-sdk-path)/usr/include"
或
export CXXFLAGS="-isysroot $(xcrun --sdk macosx --show-sdk-path) -I/usr/include -L/usr/lib -I$(xcrun --sdk macosx --show-sdk-path)/usr/include"
它可能会消除您的 fatal error: 'stdio.h' file not found
错误。如果这个错误被消除了,你可能会面临新的问题,不要把它们算作这个问题,并通过操纵它来失去你的成功!在这种情况下,只需关心您的新问题并尝试一一解决它们!
希望这个回答对你有用