0

我想再次开始编写 c++ 代码,但我刚刚意识到自制版本gcc无法编译任何 c++、c 甚至 fortran 程序。

例如,我尝试编译以下简单的 hello_world.cpp 程序:

#include<iostream>

int main()
{
    std::cout << "Hello World!" << std::endl;
    return 0;
}

使用

g++-9 hello_world.cpp

我得到的输出是:

FATAL:/usr/local/Cellar/cctools/855/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!

我尝试安装gcc@8,gcc@7和 compile 但我仍然收到相同的消息。

此外,当我尝试使用 编译hello_world.c程序gcc-9hello_world.f90使用gfortran-9.

程序*.c*.cpp编译器分别使用clangclang++编译器。我还了解到这as是一个汇编程序,并且 gcc 可以*.s使用该标志输出文件,gcc -S但我仍然不明白错误消息。

我想我在发布之前用尽了我的 C++ 知识和互联网搜索,所以提前谢谢你!

4

2 回答 2

1

我最终使用重新安装了所有软件包

brew list | xargs brew reinstall

这解决了问题!

于 2020-04-27T19:37:27.307 回答
0

对于偶然发现此问题的其他任何人,您无需重新安装所有brew软件包。麻烦制造者是cctools,它不再在 brew 公式列表中。如果由于某种原因它仍然在您的系统上徘徊,您可以

mv /usr/local/Cellar/cctools{,-backup}

确保通过gcc安装的工具套件不再看到它homebrew,或者您可以直接将其删除

brew uninstall cctools

目前,我选择了第一个,因为我不确定移除会中断什么(如果有的话)。一旦我确认没有安装它不会造成任何不良影响,我将从我的系统中完全删除它。话虽如此,我已经确认只需移动目录即可处理

FATAL:/usr/local/Cellar/cctools/855/bin/../libexec/as/x86_64/as: I don't understand 'm' flag!

当您尝试在 Mac OSX 上使用 GNU 编译器编译某些东西时报告错误(在我的情况下是 Catalina,但对于 Big Sur 和 Monterrey 应该是相同的)。

于 2021-12-09T03:37:04.823 回答