Friday, June 7, 2019

c++ - Why would clang++ fail to compile on a Mac, under Mavericks, except with sudo?



After a most recent software update on my mac, I'm not able to compile and link a c++ hello world program without sudo.



The program (helloworld.cpp):




#include 

int main(){
std::cout << "hello world\n";
return 0;
}


The invocation:




clang++ helloworld.cpp


Fails with error:




ld: can't write output file: a.out for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)





But if I do this under sudo,



sudo clang++ helloworld.cpp


There's no problem.



What might be causing this, and how might I be able to resolve this?







EDIT, again: The answer turned out not to be working directory permissions, as a couple of people suggested, but the permissions associated with the output file, a.out, of my hello world program. Credit to Petesh for the solution.


Answer



You must be sitting in a directory which is not writable by your user. Look at pwd and ls -ld . to see where you are and what the permissions are there. Try also creating an empty file by touch foo.txt in the same directory where you ran Clang.


No comments:

Post a Comment

plot explanation - Why did Peaches&#39; mom hang on the tree? - Movies &amp; TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...