系统相关
首页 > 系统相关> > c – 用于部署到远程Linux主机的命令行的Qt Creator stdin

c – 用于部署到远程Linux主机的命令行的Qt Creator stdin

作者:互联网

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

我怎样才能在Qt Creator中实现这一目标?我可以以某种方式操纵部署’参数’来连接设备以向我的命令行应用程序提供stdin吗?我也无法通过选中Projects>下的’run in terminal’复选框远程启动应用程序.运行配置,因为它不可用于远程部署.

码:

#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

解决方法:

我发现没有办法为IDE中的qt creator启动的应用程序提供stdin.

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

要使用它,您可以使用“运行设置”下的“设备上的备用可执行文件”选项从Qt Creator远程启动应用程序
并将命名管道的最后一行传递给你的c程序,期待stdin.因此,您在设备上的“备用可执行文件”如下所示:

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

‘test3’是我的程序,/ home / testis是可执行文件的位置.

然后打开1个额外的ubuntu终端并通过SSH连接到主板.现在创建一个名为’mypipe’的命名管道:

mkfifo mypipe

当你的程序期望stdin启动并等待输入时,你可以回应它的输入
其他终端进入命名管道,你的程序将把它作为stdin:

echo ‘2’ > mypipe

标签:c,qt,qt-creator,remote-debugging,cross-compiling
来源: https://codeday.me/bug/20190901/1786689.html