You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacOS下VS Code运行C++ HelloWorld程序异常请求桌面访问权限问题咨询

关于VS Code运行C++程序弹出桌面权限的问题解答

不用太担心,这种情况其实挺常见,和你的C++库被恶意破坏完全没关系,我来帮你逐个解答疑问:

为什么会弹出权限请求?

这是VS Code的运行机制导致的。当你在VS Code里运行编译好的程序时,程序是在VS Code的集成终端里启动的,这个终端会继承VS Code本身的权限上下文。如果VS Code之前被请求过桌面访问权限(或者它在加载配置时涉及到桌面路径),系统就会把这个权限要求转嫁到你的程序上。而直接在系统终端运行时,程序是独立进程,不会沾VS Code的权限关系,所以就不会弹提示。

我的C++库是不是被篡改了?

绝对不是!你的代码里没有任何文件操作逻辑,而且直接在命令行运行完全正常,输出也符合预期,这说明标准C++库是完好无损的。这个弹窗和代码、库本身一点关系都没有,纯粹是系统权限和VS Code运行环境的联动问题。

有没有其他用户遇到过?

当然有!不少Mac Big Sur(你的11.6版本就是这个)及以后的用户都反馈过这个情况——苹果的权限管控越来越严格,这种跨进程的权限继承很容易触发系统的提示机制。

是否要撤销权限?怎么操作?

如果你觉得这个权限没必要,完全可以撤销,不会影响你的程序正常运行(毕竟命令行运行没问题)。撤销步骤很简单:

  • 打开Mac的「系统偏好设置」→「安全性与隐私」→切换到「隐私」标签
  • 在左侧列表找到「文件和文件夹」
  • 找到VS Code(或者如果你的helloworld程序被列出来了就找它),取消「桌面」选项的勾选就行

另外,如果你想彻底避免以后再出现这种提示,可以试试把VS Code的集成终端换成系统自带的Terminal或者iTerm2,这样程序会在独立的终端进程里启动,不会继承VS Code的权限上下文。

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

火山引擎 最新活动