linux编译C++出现/usr/bin/ld 无法打开输出文件

linux下编译C++程序,出现

/usr/bin/ld: 无法打开输出文件 a.out: 权限不够
collect2: error: ld returned 1 exit status

看了网上说有一个可能是多个终端或多个线程在同时读写a.out这个文件,此时可以通过ps -ef|grep a.out得到a.out的pid,直接kill

而有时只有单终端,此时有可能是文件夹的权限不够,比如源文件的目录为\home\cplus\hw.cpp

则在\home下通过ls -al命令查看各文件/文件夹的所属用户组与权限

如我的为drwxr-xr-x 2 root root 4096 9月 cplus

知道rwx分别表示读写运行权限,说明该目录从属root,且仅对root开放写权限,很明显对用户自身是不开放写权限的,也就是a.out无法输入到该目录下

因此修改拥有者sudo chmod xxx cplus

xxx为自己的计算机名,此时可解决

发布了109 篇原创文章 · 获赞 108 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/u013700358/article/details/101098285