无法编译闪存驱动器上的程序

无法编译闪存驱动器上的程序

我已将闪存驱动器安装到主文件夹内的新安装点。但是,当我仍尝试编译 .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/

相关内容