为什么clang ++无法在Mac下编译,在Mavericks下,除了sudo?

Rob*_*lan 5 c++ macos clang xcode6

在我的mac上进行了最新的软件更新之后,我无法在没有sudo的情况下编译和链接c ++ hello world程序.

该程序(helloworld.cpp):

#include <iostream>

int main(){
  std::cout << "hello world\n";
  return 0;
}
Run Code Online (Sandbox Code Playgroud)

调用:

clang++ helloworld.cpp
Run Code Online (Sandbox Code Playgroud)

失败错误:

ld:无法写输出文件:a.out用于体系结构x86_64 clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

但如果我在sudo下这样做,

sudo clang++ helloworld.cpp
Run Code Online (Sandbox Code Playgroud)

这里没有问题.

可能导致这种情况的原因,以及我如何解决这个问题?


编辑,再次:答案结果证明不是工作目录权限,正如一些人建议,但与我的hello world程序的输出文件a.out相关联的权限.感谢Petesh的解决方案.

Joh*_*nck 3

您必须位于用户不可写入的目录中。查看pwdls -ld .了解您所在的位置以及那里有哪些权限。touch foo.txt还可以尝试在运行 Clang 的同一目录中创建一个空文件。