You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

编译后的mparser可执行文件在Ubuntu 22中运行提示权限被拒

解决Linux下编译后程序权限拒绝无法运行的问题

核心原因分析

从描述和file命令输出来看,程序本身是合法的ELF可执行文件,但出现权限拒绝,大概率是两个原因:

  • 文件本身没有执行权限
  • 程序所在的存储分区(比如你提到的/media/jurhas/INTENSO)被挂载时禁用了执行权限(常见于NTFS/FAT32格式的外部存储)

解决方案步骤

1. 给程序添加执行权限

执行以下命令,为mparser文件添加可执行权限:

chmod +x mparser

执行后尝试用相对路径运行:./mparser(避免PATH缓存影响)。

2. 修复分区挂载权限

如果添加权限后仍报错,说明是分区挂载限制了执行:

  • 先查看分区挂载信息,确认是否有noexec选项:
mount | grep /media/jurhas/INTENSO

输出中若包含noexec,说明分区被禁止执行文件。

  • 临时修复(重启后失效):

    1. 卸载分区:
    sudo umount /media/jurhas/INTENSO
    
    1. 重新挂载并添加exec选项:
    sudo mount -o exec /dev/sdXn /media/jurhas/INTENSO
    

    (替换/dev/sdXn为你的设备名,比如sdb1,可通过lsblk命令查看)

  • 永久修复(修改fstab):
    编辑/etc/fstab文件:

    sudo nano /etc/fstab
    

    找到对应分区的配置行,在挂载选项中加入exec,例如NTFS格式的配置:

    /dev/sdXn /media/jurhas/INTENSO ntfs-3g defaults,exec 0 0
    

    保存后执行sudo mount -a生效。

补充:Makefile优化建议

你的Makefile存在依赖路径错误:FDEPS =$(_DEPS)未使用正确的头文件路径,应改为$(DEPS),否则编译时可能找不到头文件。修改后:

$(ODIR)/%.o: %.c $(DEPS)
    $(CC) -c -o $@ $< $(CFLAGS)

内容的提问来源于stack exchange,提问作者San Pei

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 12:23:09