我知道Mac OS X是一个基于Unix的系统。我听说标准库如stdio.h位于/usr/local/include
或/usr/include
。但是这个目录中没有任何类型的库。我使用终端来搜索这个目录,我也使用像find ./ -iname "stdio.h"
这样的命令,但没有任何结果。但是,奇怪的是,gcc -test.c -o test
命令可以解决。这是怎么发生的?我想知道我的C库所在的位置。
p.s我也使用Xcode。它与此应用程序有关吗?帮我!
我有AWS EC2 linux服务器,它有两个我上面提到的库。
答案 0 :(得分:24)
如果您有Xcode但尚未安装可选的Command Line Tools软件包,则可能无法在通常的位置找到标准包含和库。尝试:
$ find /Applications/Xcode.app -name stdio.h
你可能会看到类似的东西:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/usr/include/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/System/Library/Frameworks/Kernel.framework/Versions/A/Headers/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include/sys/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/c++/4.2.1/tr1/stdio.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/usr/include/stdio.h
但是,如果您计划进行任何非Xcode(即命令行)编程 ,您可能希望 安装命令行工具包。然后,您会在/usr/include
和/usr/lib
中看到常用的标题和库。
答案 1 :(得分:21)
如果您没有安装命令行工具,则可以运行:
$ echo -e "a\nb" | jq -Rc | jq -sc
jq - commandline JSON processor [version 1.5]
Usage: jq [options] <jq filter> [file...]
...
[]
将打开一个对话框,供您接受许可协议等。
(上述回复中缺少这一点。)
答案 2 :(得分:8)
创建/更新/usr/include
的符号链接以检测到lib:
sudo ln -sf /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/usr/include /usr/include
通过搜索stdio.h可以找到上述路径
find /Applications/Xcode.app -path '*/usr/include/stdio.h'
我必须对每个XCode / MacOS SDK更新执行此操作,今天通过XCode 7升级面对此问题。
安装命令行工具后,无法使用xcode-select
重新安装它们,因此可能无法使用Mac AppStore升级更新路径。
卸载&amp;重新安装XCode然后运行xcode-select --install
可能会更新路径,但是过度杀伤。
有些帖子还提到xcode-select --switch /Application/Xcode.app
,但我没有太多运气。
答案 3 :(得分:2)
在我的笔记本电脑中,它出现在许多地方,例如/usr/include/stdio.h
和/usr/include/sys/stdio.h
以及/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/stdio.h
。
答案 4 :(得分:1)
答案 5 :(得分:0)
在文件夹
中Applications/Xcode/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.10.sdk/usr/include
或类似。
答案 6 :(得分:0)
根本原因是缺少/ usr / include文件夹,安装命令行工具有时不会自动添加它。
在以下位置安装软件包
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
答案 7 :(得分:0)
我已经安装了“ CommandLineTools”,并且Xcode和CommandLineTools目录中都存在“ stdio.h”文件。
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/stdio.h /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/stdio.h