【发布时间】:2014-10-14 04:25:07
【问题描述】:
在我的 mac 上最近一次软件更新后,我无法在没有 sudo 的情况下编译和链接 c++ hello world 程序。
程序(helloworld.cpp):
#include <iostream>
int main(){
std::cout << "hello world\n";
return 0;
}
调用:
clang++ helloworld.cpp
因错误而失败:
ld:无法写入输出文件:a.out for architecture x86_64 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
但如果我在 sudo 下这样做,
sudo clang++ helloworld.cpp
没问题。
可能是什么原因造成的,我该如何解决?
再次编辑:答案不是工作目录权限,正如几个人建议的那样,而是与我的 hello world 程序的输出文件 a.out 相关的权限.感谢 Petesh 提供的解决方案。
【问题讨论】:
-
如果目录中已经有一个名为 a.out 的文件,由 root 拥有,那么这正是您将得到的错误。尝试先删除该文件(sudo rm a.out),该命令应该会成功
-
@Petesh:实际上就是这样,我现在觉得很傻。非常感谢。
-
我不明白...你为什么接受一个没有解决问题的答案???