尝试编译C文件(通过makefile),但出现“fatal error: stdio.h: No such file or directory”的错误。在cygwin和远程linux服务器上可以正常编译(因此文件没有问题),但在我的mac上无法编译。我已经按照this问题中提到的方法安装了mac命令行工具。当我执行gcc --version时,得到的版本是5.3,但如果我执行brew info gcc,则得到的版本是8.2。通过终端查找文件时可以找到该文件,所以不确定出了什么问题。
which gcc
您将获得/usr/bin/gcc
,这是苹果macOS提供的编译器。
假设您提到homebrew,那么您想使用由homebrew安装的编译器。因此,您需要查看/usr/local/bin
并查看homebrew安装了什么:
ls -l /usr/local/bin/gcc*
lrwxr-xr-x 1 mark admin 29 17 Sep 10:53 /usr/local/bin/gcc-8 -> ../Cellar/gcc/8.2.0/bin/gcc-8
所以,回答你的问题:
/usr/local/bin
放在你的PATH环境变量的开头,gcc-8 main.c -o main
我遇到了这个问题,这是我解决的方法。
softwareupdate --all --install --force
sudo rm -rf /Library/Developer/CommandLineTools
sudo xcode-select --install
基本上开发者框架可能会出现问题。但是仅仅运行xcode-select --install
可能不起作用,因为它会说xcode开发工具已经安装(尽管它已经损坏)。所以我不得不完全清除任何现有的安装,并重新安装开发者框架。
顺便说一下,如果一切都正确安装,头文件应该在以下位置找到:
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include
g++
并标记为C++。对于C程序,请使用gcc
并标记为C。可以参考这里... https://dev59.com/81wY5IYBdhLWcg3wq5bl#32338889 - Mark Setchell