编译器g++不能创建a.out文件

The compiler g++ can't create a.out file?

本文关键字:out 文件 创建 g++ 不能 编译器      更新时间:2023-10-16

我在做我的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中的'$'引起了问题。

不,我不能提供完整的源代码;这是我的作业,我不会把它贴在这里。

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

所以只要sudo rm a.out,一切都应该很好。