前面有一个问题Can't compile C program on a Mac after upgrade to Mojave,这个问题的答案涵盖了大多数关于出错原因的变化.

现在,从2019-10-07周一起,您可以升级到macOS Catalina 10.15.在升级过程中,/usr/include目录再次被更新吹走,尽管XCode 11.0是在升级(从Mojave 10.14.6)到Catalina之前安装的.因此,预期有/usr/include个目录的编译器不再工作.

解决Mojave问题的主要建议步骤-使用以下命令:

open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg

不能在门外工作,因为目录/Library/Developer/CommandLineTools/Packages/不存在(因此还没有.pkg文件要打开).

有没有一个好的(官方)方法来创建和填充目录/usr/include

推荐答案

对我来说,将以下路径添加到CPATH解决了这个问题:

export CPATH=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include

C++相关问答推荐

为什么这个select()会阻止?

rSP堆栈指针在返回函数调用的值时有任何用途吗?

C指针算法在函数参数中的应用

我无法让LLDB正确运行我的可执行文件

在C++中头文件中声明外部 struct

模拟shell并运行.sh文件

X86/x64上的SIGSEGV,由于原始内存访问和C中的DS寄存器之间的冲突,在Linux上用TCC编译为JIT引擎

试图从CSV文件中获取双精度值,但在C++中始终为空

';\n&39;和';\r&39;中的';\n&39;之间有什么关系?

C将数组传递给函数以修改数组

使用ld将目标文件链接到C标准库

条件跳转或移动取决于未初始化值(S)/未初始化值由堆分配创建(Realloc)

C-try 将整数和 struct 数组存储到二进制文件中

生产者消费者计数器意外输出的C代码

我不知道为什么它不能正常工作,我用了get()和fget(),结果是一样的

在printf()中用%.*S格式填充长度为0的字符串是否会调用任何UB?如果是,是哪一个?

`%%的sscanf无法按预期工作

为什么实现文件中的自由函数默认没有内部链接?

无法在线程内用 C 打印?

无法在 C 中打开文本文件,我想从中读取文本作为数据并将其写入数组