V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
FutherAll
V2EX  ›  问与答

一个空的 main.cppc++编译不过了,在 include/c++/v1/cstring 报 error: expected unqualified-id 有人遇到过吗?

  •  
  •   FutherAll · 2020-05-01 12:08:23 +08:00 · 2137 次点击
    这是一个创建于 1702 天前的主题,其中的信息可能已经有所发展或是发生改变。

    image

    第 1 条附言  ·  2020-05-01 15:58:41 +08:00

    附上命令和编译器信息 ~image

    14 条回复    2020-05-01 19:21:49 +08:00
    FutherAll
        1
    FutherAll  
    OP
       2020-05-01 12:10:41 +08:00
    gcc 和 clang 都不行,应该不是编译器的问题,对比了下头文件也没有更改,是哪里出了错
    wssy
        2
    wssy  
       2020-05-01 12:27:42 +08:00 via Android
    空的 main.cpp ?应该引入了一些文件吧?
    把 main.cpp 内容放到在线编译器中试试,排查看是不是环境问题?
    FutherAll
        3
    FutherAll  
    OP
       2020-05-01 12:44:11 +08:00
    FutherAll
        4
    FutherAll  
    OP
       2020-05-01 12:45:04 +08:00
    @wssy 确实是就一个空的 main.cpp ,应该是环境问题,报错是在 ctring 那
    FutherAll
        5
    FutherAll  
    OP
       2020-05-01 12:46:54 +08:00
    #include <cstring>

    引用 cstring 就会报,但是我看 cstring 这个文件是没有改动
    wssy
        6
    wssy  
       2020-05-01 13:08:21 +08:00 via Android
    用 g++试试?就用默认编译参数: g++ main.cpp
    colom
        7
    colom  
       2020-05-01 14:00:00 +08:00 via Android
    gcc 不能无参编译 cpp
    我记得要手动链接 c++的库
    -lstdc++
    FutherAll
        8
    FutherAll  
    OP
       2020-05-01 14:37:04 +08:00 via iPhone
    @wssy g++也不行,是不是要把 c++的系统库删了。。
    FutherAll
        9
    FutherAll  
    OP
       2020-05-01 14:38:11 +08:00 via iPhone
    @colom 在其它电脑上相同方式是正常的,应该默认有参数,网上找了几种传 c++的编译参数的方式都试了
    mxalbert1996
        10
    mxalbert1996  
       2020-05-01 15:30:35 +08:00 via Android
    编译器的版本和命令不贴一下么?
    FutherAll
        11
    FutherAll  
    OP
       2020-05-01 15:59:18 +08:00
    @mxalbert1996 append 在主贴了,就是 macOS 默认的 gcc
    mxalbert1996
        12
    mxalbert1996  
       2020-05-01 18:22:00 +08:00
    @FutherAll macOS 并不自带编译器,编译器需要通过 Xcode 来提供,系统自带的 /usr/bin
    mxalbert1996
        13
    mxalbert1996  
       2020-05-01 18:23:44 +08:00   ❤️ 1
    @FutherAll macOS 并不自带编译器,编译器需要通过 Xcode 来提供,系统自带的 /usr/bin 下的很多程序都只是 wrapper,用来启动 Xcode 里的实际程序(你可以看看 man xcode-select )。另外 gcc 命令实际上用的还是 clang,这一点从你的截图里也能看出来。
    最后建议你重装 Xcode 。
    FutherAll
        14
    FutherAll  
    OP
       2020-05-01 19:21:49 +08:00
    @mxalbert1996 非常感谢,我重装 xcode 试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2787 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 12:54 · PVG 20:54 · LAX 04:54 · JFK 07:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.