无法编译任何C++程序; 错误:未知类型名称'uint8_t'

Jos*_*rah 11 c++ macos xcode homebrew

编辑2:问题不是一个简单的印刷错误.我在下面的日志中写了一个错字,我纠正了,但问题仍然存在.

编辑:在尝试下面之后,我错误地用gcc而不是g ++运行了一次.之前使用g ++存在问题,它现在存在.

我目前正在使用MacOS High Sierra盒子.我最近把很多文件从MacBook Air移到了这台机器上,包括我认为是Xcode的所有垃圾.现在,当我尝试编译一个非常简单的C++程序时:

#include <iostream>

int main()
{
    // VAR_DEC
    int a = 4;
    // VAR_MANIP
    a = a*2;
    // VAR_PRINT
    std::cout << a << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我得到以下荒谬的错误:

jrfarah@Josephs-MBP: [config_file_script] $ g++ test.cpp -o test
In file included from test.cpp:1:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/iostream:38:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/ios:216:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__locale:15:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/string:470:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/string_view:171:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/__string:56:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/algorithm:640:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/memory:629:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/typeinfo:61:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/exception:82:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/cstdlib:86:
In file included from /Library/Developer/CommandLineTools/usr/include/c++/v1/stdlib.h:94:
In file included from /usr/include/stdlib.h:65:
In file included from /usr/include/sys/wait.h:110:
/usr/include/sys/resource.h:196:2: error: unknown type name 'uint8_t'
        uint8_t  ri_uuid[16];
        ^
/usr/include/sys/resource.h:197:2: error: unknown type name 'uint64_t'
        uint64_t ri_user_time;
        ^
/usr/include/sys/resource.h:198:2: error: unknown type name 'uint64_t'
        uint64_t ri_system_time;
        ^
/usr/include/sys/resource.h:199:2: error: unknown type name 'uint64_t'
        uint64_t ri_pkg_idle_wkups;
        ^
/usr/include/sys/resource.h:200:2: error: unknown type name 'uint64_t'
        uint64_t ri_interrupt_wkups;
        ^
/usr/include/sys/resource.h:201:2: error: unknown type name 'uint64_t'
        uint64_t ri_pageins;
        ^
/usr/include/sys/resource.h:202:2: error: unknown type name 'uint64_t'
        uint64_t ri_wired_size;
        ^
/usr/include/sys/resource.h:203:2: error: unknown type name 'uint64_t'
        uint64_t ri_resident_size;
        ^
/usr/include/sys/resource.h:204:2: error: unknown type name 'uint64_t'
        uint64_t ri_phys_footprint;
        ^
/usr/include/sys/resource.h:205:2: error: unknown type name 'uint64_t'
        uint64_t ri_proc_start_abstime;
        ^
/usr/include/sys/resource.h:206:2: error: unknown type name 'uint64_t'
        uint64_t ri_proc_exit_abstime;
        ^
/usr/include/sys/resource.h:210:2: error: unknown type name 'uint8_t'
        uint8_t  ri_uuid[16];
        ^
/usr/include/sys/resource.h:211:2: error: unknown type name 'uint64_t'
        uint64_t ri_user_time;
        ^
/usr/include/sys/resource.h:212:2: error: unknown type name 'uint64_t'
        uint64_t ri_system_time;
        ^
/usr/include/sys/resource.h:213:2: error: unknown type name 'uint64_t'
        uint64_t ri_pkg_idle_wkups;
        ^
/usr/include/sys/resource.h:214:2: error: unknown type name 'uint64_t'
        uint64_t ri_interrupt_wkups;
        ^
/usr/include/sys/resource.h:215:2: error: unknown type name 'uint64_t'
        uint64_t ri_pageins;
        ^
/usr/include/sys/resource.h:216:2: error: unknown type name 'uint64_t'
        uint64_t ri_wired_size;
        ^
/usr/include/sys/resource.h:217:2: error: unknown type name 'uint64_t'
        uint64_t ri_resident_size;
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
Run Code Online (Sandbox Code Playgroud)

我试过安装和重新安装所有我能想到的相关的问题,如gcc,g++,cc,brew,Xcode的,command-line-tools等我也试着在下面几页的所有建议:

还有更多,但那些总结得很好.这些解决方案都没有奏效.

我认为最后一个有最可能的解决方案.(如果您在页面上搜索"未知",您将看到修复.)根据开发人员的说法:

修复:从"标题搜索路径"构建设置中删除/ opt/local/include/**和/ opt/local/lib/**.用更具体的路径替换它们到所需的包含目录.在我的特定情况下,这意味着用/opt/local/include/glib-2.0 /opt/local/lib/glib-2.0/include/opt/local/include /替换它们.它再次启动并运行!

但是,我没有安装Xcode,我只安装了命令行开发工具.因此,我没有一种简单的方法来访问"Header Search Paths"构建设置,因此,我无法尝试他的解决方案.

我正在寻找这个问题的解决方案,最好不要求我安装整个操作系统.或者,如果有人可以指导我找到构建设置文件,我将非常感激.

Che*_*ang 12

也许你可以尝试:

mv /usr/local/include /usr/local/include.old

然后:

brew install llvm

  • 这个解决方案对我有用。该问题发生在从另一台笔记本电脑迁移后,重新安装 xcode/devtools 不起作用,也没有任何其他建议的解决方案。虽然这不是公认的答案,但它要简单得多。我建议你 mv /usr/local/include ~/include.old 而不是 rm。 (2认同)

OwO*_*OwO 4

很明显,您破坏了系统 GCC 安装。请注意,GCC 是一套编译器,而G++是 C++ 前端。包管理器通常有一个名为 的单独包gcc-g++,但是,从源代码编译时,您只需这样做--enable-languages=c,c++。现在,如果重新安装 XCode 不能解决问题(您应该已经这样做了,如果“它占用太多空间”只需将其删除),那么您可以尝试从源代码编译 GCC。改编自GNU wiki

  • 首先,从这里获取您想要的 GCC 焦油球

  • 解压它tar zxvf gcc*

  • cd gcc*然后./contrib/download_prerequisites

  • 进行源外构建:mkdir build && cd build

  • ../gcc*/configure --prefix=$HOME/gcc-install --enable-languages=c,c++

  • makemake install

现在只需添加$HOME/gcc-install/bin到您的路径中,您就可以开始了。

  • 这解决了我的问题!我还想补充一点,在尝试执行此操作之前,我必须手动删除命令行工具目录;除此之外这有效!谢啦!另外,我希望我能两次投票赞成“borked”这个词的原始用法。 (2认同)