Qt Creator以用户身份代码,但以root身份运行和调试

Qt Creator code as a user but run and debug as root

本文关键字:身份 root 运行 调试 但以 代码 Creator 用户 Qt      更新时间:2023-10-16

是否可以以nornal用户身份执行QtCreator,但以root身份运行和调试应用程序?

这将很有用,即在开发基于WiringPi的应用程序时,它有助于访问GPIO,但需要root才能有效地启用对硬件的访问。

为了更清楚地说明我的意图,我希望当我在QtCretor中点击Ctrl+R时,它以root身份运行该应用程序。调试的想法相同,当我点击F5时,它以 root 身份启动调试模式。所有这一切都是在QtCreator由普通用户运行的时候进行的。

WiringPi不需要root访问权限。您需要正确设置相关设备节点的属性,仅此而已。确保您有可供 WiringPi 使用的/dev/gpiomem,可由用户写入。它在 4.1 和更新的内核 IIRC 上可用。

您的问题是 X-Y 问题的情况。是的,root访问回避了错误的设备节点属性的问题,但这根本不是一个合适的解决方案。不要以 root 用户身份运行应用程序。

我今天在以下评论下解决了与布线Pi相同的问题:https://askubuntu.com/a/711130

就我而言,它是:

工具->选项->环境在终端选项中将默认字符串替换为"/usr/bin/xterm -e sudo"。

另外,不要忘记转到"项目>构建和运行">"运行"并选中"在终端中运行"框。

简短的回答是否定的。 即使您可以从非根QtCreator上下文中启动应用程序以root身份运行,也无法连接到正在运行的进程并对其进行调试。

你最好以root身份运行QtCreator。

如果需要开发一个到 GPIO 引脚的"用户模式"接口,可以尝试本教程: LED 驱动器

它展示了一种在/sys 树中创建节点的方法,该方法可让你以用户模式访问 GPIO。