如何解决损坏的叮当声的问题:缺少stdlib.h

时间:2019-07-01 08:15:20

标签: xcode macos clang

我对MacOS Mojave 10.14.5和Xcode编译器有问题。准确地说,我正在尝试通过Github在R中安装一个软件包,并且编译器正在为缺少的stdlib.h而抱怨。这是错误:

能否请人向我解释如何解决此问题?

clang -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include  -fPIC  -Wall -g -O2  -c bspline.c -o bspline.o
clang: warning: no such sysroot directory: '/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk' [-Wmissing-sysroot]
In file included from bspline.c:3:
In file included from ./pomp_internal.h:6:
/Library/Frameworks/R.framework/Resources/include/R.h:55:11: fatal error: 'stdlib.h' file not found
# include <stdlib.h> /* Not used by R itself, but widely assumed in packages */
          ^~~~~~~~~~
1 error generated.
make: *** [bspline.o] Error 1
ERROR: compilation failed for package ‘pomp’
* removing ‘/Users/Atorneri/Library/R/3.6/library/pomp’
* restoring previous ‘/Users/Atorneri/Library/R/3.6/library/pomp’
Error: Failed to install 'pomp' from GitHub:
  (converted from warning) installation of package ‘/var/folders/w7/v79h1vtd38579k18skjw2w280000gn/T//RtmpDSox3s/file3547ba46d4e/pomp_2.2.0.0.tar.gz’ had non-zero exit status

6 个答案:

答案 0 :(得分:1)

我通过创建符号链接为同事解决了此问题。

这是我的文件系统:

pi@piPro18 /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
> ls -la
total 0
drwxr-xr-x  5 root  wheel  160 21 Sep 14:05 .
drwxr-xr-x  6 root  wheel  192 11 Sep 12:47 ..
drwxr-xr-x  4 root  wheel  128 30 Aug 07:47 DriverKit19.0.sdk
drwxr-xr-x  8 root  wheel  256 30 Aug 07:47 MacOSX.sdk
lrwxr-xr-x  1 root  wheel   10 21 Sep 14:02 MacOSX10.14.sdk -> MacOSX.sdk

他缺少该符号链接。因此我们创建了它:

sudo ln -s MacOSX.sdk MacOSX10.14.sdk

来自https://github.com/mapnik/python-mapnik/issues/167

  

最近(?),Apple决定停止使用版本命名其SDK,而是将其命名为MacOSX.sdk并包括一个别名,该别名的版本名称出于兼容性考虑

我剩下的一个谜是为什么我有符号链接,而我的同事却没有。如果有人可以解释这一点,请发表评论。

答案 1 :(得分:1)

我遇到了同样的问题,我正在做:

sudo ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk

答案 2 :(得分:0)

也许找不到/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk。您可以尝试将xcode切换到xcode应用程序。
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer

答案 3 :(得分:0)

xcode-select --install航站楼跑步为我解决了这个问题。

答案 4 :(得分:0)

我遵循了所有提示来更新R COMPILER TOOLS FOR RCPP ON MACOS。 使用MacOS X Catalina 10.15和R版本3.6.1(2019-07-05)-平台上的“脚趾动作”:x86_64-apple-darwin15.6.0(64位)。

不是我自己的想法/知识,而是https://superuser.com/a/1490988/918146的礼貌

答案 5 :(得分:0)

我在iOS项目中也遇到了这个问题。该项目是针对iOS 13.5构建的(尽管我将目标设置为13.0)。突然,所有内容在后台更新为13.6,并且编译器再也找不到对13.5 SDK的引用。我检查了SDK应该存在的文件夹(基于错误消息),然后发现

drwxrwxr-x  7 root  wheel  [...] iPhoneSimulator.sdk
lrwxr-xr-x  1 root  wheel  [...] iPhoneSimulator13.6.sdk -> iPhoneSimulator.sdk

但没有13.5。因此,在Thanh Vu之后,我创建了链接

sudo ln -s iPhoneSimulator.sdk iPhoneSimulator13.5.sdk

那解决了问题。现在所有模拟器都以13.6运行。