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

执行bash命令调用Terminal打开g++编译文件报错的原因与解决方法

问题分析与解决:'1' cannot be opened because '(null)' is not allowed to open documents in Terminal

报错原因

  • open -a Terminal.app 是用来让Terminal.app打开文档类文件(比如shell脚本、文本文件)的工具,但你生成的1是g++编译出的二进制可执行文件,Terminal并不将这类文件视为可直接打开的“文档”。
  • macOS应用权限机制中,Terminal.app未被配置为可打开二进制可执行文件的应用,系统无法识别该文件类型对应的权限标识,因此报错信息里显示(null)。

解决方法

方法1:直接执行可执行文件(最简便)

先确保文件拥有执行权限:

chmod +x 1

随后在终端中运行:

./1

方法2:通过open命令让Terminal.app启动并运行该文件

如果需要强制调用Terminal.app来执行这个可执行文件,可以传递启动参数让Terminal执行运行命令:

bash -c "open -a Terminal.app --args -e 'cd $(pwd); ./1'"

这里--args用来给Terminal.app传递启动指令,-e后接的命令会在Terminal启动时自动执行:先切换到当前文件所在目录,再运行可执行文件。

方法3:直接在iTerm2中执行(无需调用Terminal.app)

既然你已经在iTerm2里操作,完全没必要额外调用Terminal.app,直接执行./1即可完成运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 15:20:29