首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Xcode升级后无法编译C++代码:没有这样的文件或目录

Xcode升级后无法编译C++代码:没有这样的文件或目录
EN

Stack Overflow用户
提问于 2020-12-17 00:14:53
回答 1查看 363关注 0票数 0

今天早上,在将macOS BigSur升级到11.1并将Xcode升级到12.3之后,我的MacPorts 2.6.4发行版开始出现问题。我再也不能用GNU C++ v10.2.0_4编译简单的C++程序了:

代码语言:javascript
复制
g++ -O3 -std=c++11 -c libvec.cpp
In file included from /opt/local/include/gcc10/c++/cmath:45,
             from libvec.cpp:1:
/opt/local/lib/gcc10/gcc/x86_64-apple-darwin20/10.2.0/include-fixed/math.h:45:10: fatal error: sys/cdefs.h: No such file or directory
45 | #include <sys/cdefs.h>
   |          ^~~~~~~~~~~~~
compilation terminated.

初步的互联网搜索表明,这个问题可能是由于与Xcode命令行工具不一致造成的。你能指导我如何调试和修复它吗?也许我需要在这样的升级之后重新安装MacPorts发行版?谢谢!

EN

回答 1

Stack Overflow用户

发布于 2020-12-17 01:04:31

这个问题确实是由从11.0到11.1的macOS更新和从12.2到12.3的Xcode更新引起的。苹果的新政策是在每次系统更新时增加SDK版本。与以前的MacPorts版本一起安装的SDK C++编译器现在由于此增量而失败。一种快速解决方法是将SDKROOT环境变量设置为与新版本号匹配:

代码语言:javascript
复制
export SDKROOT=`xcrun --show-sdk-path`

为方便起见,请将此命令放入~/.profile文件中。可以在following thread on MacPorts邮件列表中找到详细的问题解释和解决方案。

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

https://stackoverflow.com/questions/65327697

复制
相关文章

相似问题

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