Code::Blocks C++ 使用 MacOS Mojave 编译:致命错误:sys/cdefs.h:没有这样的文件或目录

Posted

技术标签:

【中文标题】Code::Blocks C++ 使用 MacOS Mojave 编译:致命错误:sys/cdefs.h:没有这样的文件或目录【英文标题】:Code::Blocks C++ compiling with MacOS Mojave : fatal error: sys/cdefs.h: No such file or directory 【发布时间】:2018-09-26 12:28:39 【问题描述】:

(这是我在 *** 上的第一个问题)

我必须在工作中使用 Mac,并且我正在使用 Code::Blocks 使用 C++ 进行编码(因为我已经习惯了这个 IDE)。 2 天前,我从 MacOS High Sierra 升级到了 MacOS Mojave,我可以说……这是一个错误的决定。

现在,当尝试#include <math.h> 时,我收到此错误:fatal error: sys/cdefs.h: No such file or directory。我试过用xcode-select --install重新安装xcode命令行工具,还是不行。

有人知道发生了什么,我该如何解决这个问题?

【问题讨论】:

您是否尝试过包含 cmath 而不是 math.h ? math.h 是 C 而不是 C++ cmath 是 c++ 等价物(实际上主要是一个包装器)。 感谢您的提示,但它绝对不会改变任何东西 :( 您是否尝试过使用 OSX 的搜索功能来查看文件是否真的存在于任何地方?如果是,您可以在 Code::Blocks 中添加位置路径。如果不是,您可能需要使用 brew 或类似工具安装标头。 这可能是您正在寻找的答案:***.com/questions/19575956/… 看来您必须下载 cmd 工具并安装它,而不是运行 xcode-slect --install。 好的,谢谢您的回复。感谢我读到的内容,我尝试重新安装 gcc,它解决了问题。标头的位置必须在 High Sierra 和 Mojave 之间发生变化。 【参考方案1】:

接受的答案似乎对我不起作用,但this did:

cd /Library/Developer/CommandLineTools/Packages/
open .

然后双击 pkg 文件。

【讨论】:

非常感谢您的贡献 :) 我很遗憾听到我的不适用于所有人...【参考方案2】:

通过重新安装 gcc 解决了问题。标头的位置可能在 High Sierra 和 Mojave 之间发生了变化。

我建议遇到同样问题的人也这样做,并使用xcode-select --install(重新)安装 xcode 命令行工具

【讨论】:

重新安装 gcc4.9 和 gcc7 对我没有影响。但是,使用直接路径 (/usr/bin/gcc) 允许我编译

以上是关于Code::Blocks C++ 使用 MacOS Mojave 编译:致命错误:sys/cdefs.h:没有这样的文件或目录的主要内容,如果未能解决你的问题,请参考以下文章

进程在 code::blocks c++ 中返回 -1073741819 (0xC0000005)

Code::Blockswindows 环境下编译 Code::Blocks(已修正)

c++零基础的自修课 01-开发工具的安装(code::blocks)

如何用Code Blocks创建C++控制台项目

Code Blocks+gtest环境配置

Ubuntu下安装codeblocks