是否可以以普通用户身份执行 QtCreator 但以 root 身份运行和调试应用程序?
这将很有用,即在开发基于WiringPi的应用程序时,它有助于访问 GPIO,但需要 root 才能有效地启用对硬件的访问。
为了更清楚地说明我的意图,我希望当我Ctrl+R
进入 QtCretor 时,它会以 root 身份运行该应用程序。和调试相同的想法,当我点击F5
它以root身份启动调试模式时。所有这些都是在 QtCreator 由普通用户运行时。
WiringPi 不需要 root 访问权限。您需要正确设置相关设备节点的属性,仅此而已。确保您/dev/gpiomem
可供 WiringPi 使用,用户可写。它在 4.1 和更新的内核 IIRC 上可用。
您的问题是 XY 问题的案例。是的,root 访问回避了错误设备节点属性的问题,但这根本不是一个合适的解决方案。不要以 root 身份运行您的应用程序。
我今天在此评论之后解决了与 WiringPi 相同的问题:https ://askubuntu.com/a/711130
就我而言,它是:
工具-> 选项-> 环境在终端选项中将默认字符串替换为“/usr/bin/xterm -e sudo”。
另外,不要忘记转到Projects > Build & Run > Run并选中Run in terminal框。
最简洁的答案是不。即使您可以在非根 QtCreator 上下文中以根用户身份启动应用程序,您也无法连接到正在运行的进程并对其进行调试。
你最好以 root 身份运行 QtCreator。
如果您需要为 GPIO 引脚开发“用户模式”接口,您可以尝试本教程: LED Driver
它展示了一种在 /sys 树中创建节点的方法,可以让您在用户模式下访问 GPIO。