【问题标题】:The compiler g++ can't create a.out file?编译器 g++ 无法创建 a.out 文件?
【发布时间】:2015-12-16 07:55:37
【问题描述】:

所以,我正在为我的 C++ 课做作业。我在终端中使用此语句 g++-5.2.0 -std=c++14 -Wall -Wextra -pedantic <file_name> 编译了很长时间,但由于某种我不知道的原因,我收到了此消息:Agreeing to the Xcode/iOS license requires admin privileges, please re-run as root via sudo.

天真地,我运行了命令sudo g++-5.2.0 -std=c++14 -Wall -Wextra -pedantic hw2pr3.cpp,输入了我的密码,并同意了这些条款。

现在,当我尝试使用 g++-5.2.0 -std=c++14 -Wall -Wextra -pedantic hw2pr3.cpp 进行编译时,我得到以下语句:

ld: can't write output file: a.out for architecture x86_64 collect2: error: ld returned 1 exit status

有人知道该怎么办吗?

我现在尝试运行的文件 (hw2pr3.cpp) 与之前的文件有什么不同:

std::cout << std::setprecision(2) << "You should give away about $" << donate << ", save about $" << save <<", and live on about $" << live << ".\n";

我的猜测是 std::set precision(2) 搞砸了(这是我第一次使用这个语句,我不知道我是否做对了),或者 '$' 在cout 引起了问题。

不,我无法为此提供完整的源代码;这是我的作业,我不会在这里发布。

【问题讨论】:

  • 如果您需要帮助,您可能必须删除可识别为作业的部分,并提供重现问题的通用示例。
  • 你能编译任何东西吗?你能编译和运行Hello World吗?这似乎更像是编译器环境有问题,而不是你的代码。
  • @NateEldredge 是的,我可以编译和运行 hello world。
  • @NateEldredge 非常感谢!那解决了它。你知道为什么 Xcode 会发送那个声明吗?
  • 谷歌搜索消息是一个好的开始,然后出现stackoverflow.com/questions/26197347/…

标签: c++ xcode gcc compiler-errors c++14


【解决方案1】:

当您使用sudo g++-5.2.0 编译代码时,您以root 身份运行编译器,因此输出文件a.out 以root 身份创建。如果没有sudo,您将以普通用户身份运行,并再次尝试将输出写入a.out。但是作为普通用户,你没有删除/覆盖root拥有的文件a.out的权限。

所以只需sudo rm a.out,一切都会好起来的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-16
    • 2015-03-27
    • 1970-01-01
    • 1970-01-01
    • 2022-11-14
    • 2014-10-03
    • 1970-01-01
    相关资源
    最近更新 更多