gpt4 book ai didi

c++ - 用于部署到远程 Linux 主机的命令行的 Qt Creator 标准输入

转载 作者:太空狗 更新时间:2023-10-29 20:44:58 25 4
gpt4 key购买 nike

我正在使用 Qt Creator 的远程部署功能在嵌入式 Linux 目标板上启动我的简单命令行应用程序。我的测试应用程序非常简单,要求用户打印他/她的名字。它交叉编译、传输到电路板并启动,Qt Creator 底部附近的“应用程序输出”窗口显示“键入您的姓名:”提示,但我无法在任何地方键入并向通过 Qt Creator 远程运行的应用程序提供标准输入。

如何在 Qt Creator 中完成此操作?我能否以某种方式操纵部署“参数”以连接设备以向我的命令行应用程序提供标准输入?我也无法通过选中“项目”>“运行配置”下的“在终端中运行”复选框来远程启动应用程序,因为它不可用于远程部署。

代码:

#include <iostream>

using namespace std;

int main() {
cout << "Enter a number: ";
int nb;
cin>>nb;
cout << "Here is your number:" << nb << endl;
return 0;
}

Qt Creator 中的应用程序输出:

Killing remote process(es)...
Starting remote process ...
Remote process started.
Enter a number: d

最佳答案

我发现无法为 qt creator 从 IDE 中启动的应用程序提供标准输入。

我确实尝试了一些东西,看起来命名管道工作得很好。幸运的是,它包含在 Busybox 中,所以它在我的板上。

要使用它,您可以使用“运行设置”下的“设备上的备用可执行文件”选项从 Qt Creator 远程启动应用程序并将命名管道的最后一行通过管道传递给需要标准输入的 C++ 程序。所以你的“设备上的备用可执行文件看起来像:

cd /home/test; tail -f mypipe | ./test3 –qws

“test3”是我的程序,/home/test 是可执行文件的位置。

然后打开 1 个额外的 ubuntu 终端和 SSH 到开发板。现在创建一个名为“mypipe”的命名管道:

mkfifo mypipe

当你的程序期待 stdin 启动并等待输入时,你可以回显来自那个的输入其他终端进入命名管道,您的程序将把它作为标准输入:

echo ‘2’ > mypipe

关于c++ - 用于部署到远程 Linux 主机的命令行的 Qt Creator 标准输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11869281/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com