首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >找不到stdio.h

找不到stdio.h
EN

Stack Overflow用户
提问于 2018-08-09 07:53:49
回答 7查看 38.3K关注 0票数 28

我正在使用macOS。

我正在尝试构建mozilla-central的代码。

在运行命令./mach build时,编译步骤会失败。下面是相关的堆栈跟踪:

代码语言:javascript
复制
stack backtrace:
 0:20.24    0:        0x10436b5ff - std::sys::unix::backtrace::tracing::imp::unwind_backtrace::hed04c7a1477ef1e3
 0:20.24    1:        0x10434499d - std::sys_common::backtrace::print::h336400f22676933f
 0:20.24    2:        0x104373bd3 - std::panicking::default_hook::{{closure}}::h0d6700a02d682978
 0:20.24    3:        0x10437395c - std::panicking::default_hook::h90363c6d6ac04260
 0:20.24    4:        0x1043742fb - std::panicking::rust_panic_with_hook::h81c4f3add25e6667
 0:20.24    5:        0x1043740ce - std::panicking::continue_panic_fmt::hfa057b7c1de88179
 0:20.24    6:        0x104374020 - std::panicking::begin_panic_fmt::hd1123702300ea9f2
 0:20.24    7:        0x1035f4e6d - build_script_build::build_gecko::bindings::write_binding_file::h2d9a397b93e6a614
 0:20.24    8:        0x1035f651c - build_script_build::build_gecko::bindings::generate_bindings::ha066bc11b076e01d
 0:20.24    9:        0x1043808fe - __rust_maybe_catch_panic
 0:20.24   10:        0x1035eea9f - std::panicking::try::hcbd901ede6e8004c
 0:20.32   11:        0x1035e335c - <F as alloc::boxed::FnBox<A>>::call_box::h638a7c5eb8c94414
 0:20.33   12:        0x104373037 - std::sys_common::thread::start_thread::h78b1dd404be976ad
 0:20.33   13:        0x1043436c8 - std::sys::unix::thread::Thread::new::thread_start::h27c6becca8cf44e0
 0:20.33   14:     0x7fff636208cc - _pthread_body
 0:20.33   15:     0x7fff6362083e - _pthread_start
 0:20.33 /usr/local/Cellar/llvm/6.0.1/include/c++/v1/stdio.h:108:15: fatal error: 'stdio.h' file not found
 0:20.33 /usr/local/Cellar/llvm/6.0.1/include/c++/v1/stdio.h:108:15: fatal error: 'stdio.h' file not found, err: true
 0:20.37 thread '<unnamed>' panicked at 'Failed to generate bindings

据我所知,根本原因是:

代码语言:javascript
复制
/usr/local/Cellar/llvm/6.0.1/include/c++/v1/stdio.h:108:15: fatal error: 'stdio.h' file not found, err: true

在线列出的解决方案是使用以下方法安装xcode命令行工具:

代码语言:javascript
复制
xcode-select --install

我已经做过了。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2018-09-26 06:10:44

根本原因是缺少一个/usr/include目录。

安装命令行工具(xcode-select --install)有时不会自动添加它.

链接展示了正确的方法:安装命令行工具之后,将包安装在:

代码语言:javascript
复制
# run this in Terminal
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

在那之后,

您应该有一个带有头文件的目录/usr/include

票数 60
EN

Stack Overflow用户

发布于 2020-01-31 11:00:04

尝试将SDKROOT显式设置为system:

代码语言:javascript
复制
export SDKROOT=$(xcrun --sdk macosx --show-sdk-path)

这样做可以避免在/usr中创建符号链接的需要。

这个错误似乎是反复出现的,例如,如果您安装了另一个编译器(例如,来自brew的gcc )。设置SDKROOT变得如此普遍,因此将其添加到~/.bash_profile中可能是个好主意。

票数 59
EN

Stack Overflow用户

发布于 2019-10-03 20:24:30

我在编译R包时也遇到了同样的问题,而运行xcode-select --installmacOS_SDK_headers_for_macOS_10.14.pkg并不能解决这个问题。

我发现macOS 10.14和10.15之间的Apples端似乎有些混乱,因为我使用最新的xcode 11.0 (11A420a)运行Mojave (10.14),当clang编译时,它会在

/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/

但是这里只有MacOSX10.15.sdk (以及其他东西)。我用这个修好了

pushd /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/ sudo ln -s MacOSX.sdk MacOSX10.14.sdk popd

现在,我可以再次在RStudio中安装软件包。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51761599

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档