![无法编译闪存驱动器上的程序](https://linux22.com/image/990559/%E6%97%A0%E6%B3%95%E7%BC%96%E8%AF%91%E9%97%AA%E5%AD%98%E9%A9%B1%E5%8A%A8%E5%99%A8%E4%B8%8A%E7%9A%84%E7%A8%8B%E5%BA%8F.png)
我已将闪存驱动器安装到主文件夹内的新安装点。但是,当我仍尝试编译 .cpp 文件时,系统提示我权限被拒绝。我该如何修复此问题?
1) 在 GParted 中,我的闪存驱动器称为/dev/sdc1
。在这里,在 Mounte Pointe 标签下,它显示路径是/home/myName/newMount
2) 因此,当我打开我的主文件夹时,我会看到 newMount 文件夹,里面是我的闪存驱动器的所有内容。但是,当我尝试编译程序时,它不允许我这样做。以下是我采取的步骤:
$ cd newMount
$ cd test
(测试是包含我的程序的 C++ 文件夹)$ g++ -std=c++11 test.cpp -o test
$ ./test
通过运行mount
命令,我从闪存驱动器中获取了以下行文本:/dev/sdc1 on /home/myName/newMount type vfat (rw,noexec,nosuid,nodev,fmask=0022,dmask=0000)
答案1
在与作者进行一些私人聊天和调试之后 - 似乎您已使用标志安装了 USB 驱动器noexec
- 这会阻止您从驱动器执行任何操作,即使您已明确设置权限。
要修复此问题,只需使用remount
带有标志的 USB 驱动器即可exec
。
sudo mount -o remount,exec /home/myName/newMount
使用remount
,所有其他标志将保持不变。
答案2
不太清楚您在尝试什么。我猜您的驱动器正在自动安装,但是当您尝试在闪存驱动器上编译文件时,您会被拒绝权限。似乎您可能已使用 root 权限复制了文件。您可能想尝试sudo chmod -R a+r /path/to/folder/
,如果您还想在设备上存储文件,请也运行sudo chmod -R a+w /path/to/folder/
。