Linux系统下Qt Creator中使用QProcess调用外部程序没有输出。

如题。
可执行的独立程序如下,是用C语言实现的哲学家就餐问题

#include<stdio.h>
#include<stdlib.h>
#include<pthread.h>
#include<unistd.h>
#include<semaphore.h>
#define N 3
#define LEFT i
#define RIGHT (i+1)%N

sem_t mutex[N];
int id[N]={0,1,2};
pthread_t thread[N];
void* solve(void*param){
    int i=*((int*)param);
    while(i>=0){
        if(i%2==0){
           sem_wait(&mutex[LEFT]);
           sem_wait(&mutex[RIGHT]);
           printf("phlio %d is eating\n",i);
           sleep(1);
           sem_post(&mutex[RIGHT]);
           sem_post(&mutex[LEFT]);
           printf("phlio %d is over\n",i);
           sleep(1);
        }else{
           sem_wait(&mutex[RIGHT]);
           sem_wait(&mutex[LEFT]);
           printf("phlio %d is eating\n",i);
           sleep(1);
           sem_post(&mutex[LEFT]);
           sem_post(&mutex[RIGHT]);
           printf("phlio %d is over\n",i);
           sleep(1); 
        }
    }
}
int main(){
    int i=0;
    for(i=0; i<N; i++){
       sem_init(&mutex[i],0,1);
       pthread_create(&thread[i],NULL,solve,&id[i]);
    }
    for(i=0; i<N; i++){
       pthread_join(thread[i],NULL);
    }
    return 0;
}

Qt中使用按钮启动外部C程序,已经尝试过的方法如下(4种方法):

//第一种方法:
void Dialog::on_pushButton_clicked()
{
   QStringList strList;
   strList <<"null"<<"null";
   QProcess::startDetached("/home/alison/ph1/a.out",strList,"/home/alison/ph1");
}

//第二种方法:
void MainWindow::on_pushButton_clicked()
{
    QProcess *process=new QProcess;
    QStringList args;
    args<<"./a.out";
    process->start("/home/alison/ph2/a.out",args);
}

//第三种方法:
void MainWindow::on_pushButton_clicked()
{
    QProcess *process=new QProcess;
    QStringList str;
    str <<"";
    process->start("/home/alison/ph2/a.out");
}

//第四种方法:
void MainWindow::on_pushButton_clicked()
{
    QProcess *process=new QProcess;
    QProcess::execute("/home/alison/ph2/a.out");
}

Qt程序编译没有错误,但运行之后点击按钮没有相应的C程序运行的结果
希望各位大佬可以帮我解答一下哪里需要修改,十分感谢!

1个回答

楼主,刚好遇到跟你一样的问题,我尝试了你的四种方法,确实不行。我的解决办法是:将要调用的可执行文件与主程序的可执行文件放在同一个路径下,然后在
QProcess::execute("a.out")中直接写入可执行文件名称即可。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Python+OpenCV计算机视觉

Python+OpenCV计算机视觉

qt调用外部程序的问题

我用的是qt4.8.7版本,项目里有一个QPushButton按钮,我本来的意思是点击按钮发送信号,能够打开CLV播放器程序,但是遇到一个问题:每次点击按钮的时候就会打开两个播放器窗口。如何才能实现只大开一个窗口呢? 注:项目中也有其他按钮(不过不是调用外部程序用),点击都没有这种问题 cpp部分代码: CTrPa::CTrPa(QWidget *parent) : QWidget(parent), ui(new Ui::CTrPa) { ui->setupUi(this); connect(ui->cmbtnoff, SIGNAL(clicked()), this, SLOT(on_cmbtnoff_clicked())); } void CTrPa::on_cmbtnoff_clicked() { Qprocess::startDetached("/usr/bin/cvlc"); ui->cmbtnoff->setVisible(false); } 求助大神帮忙看看,谢谢!!

linux环境下用 QtCreator 编译 bitcoin代码

怎样用QtCreator 编译 bitcoin代码,把代码导入之后,编译报错 无法找到 #include_next <stdlib.h>文件,求.pro怎样配置

Linux下QtCreator使用LLDB的调试问题

环境:[Unbuntu 16.04LTS] + [Qt 4.8.7] + [Clang/Clang++ 3.8] 问题:因为使用Clang的原因,所以希望能用更加配套的LLDB进行调试,我的LLDB是直接通过apt-get安装的(lldb,lldb-3.8我都试过),QtCreator虽然能自动检测到LLDB,但配置使用LLDB时依旧无法调试,具体现象是进入调试后直接结束。不知道有没有人知道该怎么让QtCreator支持LLDB调试

Qt Creator运行没反应

想用Qt Creator,但是想写个简单的hello world程序都不会运行了。这个程序是我布局了两个按键而已,我想运行让他们显示,就是在图画框拉了两个按键上去,但是运行的时候并没有弹出那个小窗口,没有反应,也没看到什么报错。下面是截图。还有就是上面的工具栏总是突然就不见了,显示不出字来,刚打开的时候还有,但是点到.ui那个文件之后,就不见了。已经重装很多次QT了,还是这样,我不知道是缺少了什么还是配置不对,求大家帮帮忙!谢谢!拜托了!![图片说明](https://img-ask.csdn.net/upload/201704/07/1491579798_903586.png)![图片说明](https://img-ask.csdn.net/upload/201704/07/1491579548_507148.png)![图片说明](https://img-ask.csdn.net/upload/201704/07/1491579559_465355.png)

如何在qtcreator查看qt的源码以及调试qt源码?

如何在qtcreator查看到qt的源码以及调试qt源码? (一)环境: Qt Creator 4.11.1 Based on Qt 5.14.1 (MSVC 2017, 32 bit) 安装时勾选了安装源码; (二)问题 1)ctrl+鼠标左键无法跳转到cpp:已经同一个qtcreator中,打开源码的qt.pro 2)调试时无法进入debug:已经点击顶部菜单栏->工具->选项->调试器->概要->源码路径映射->添加Qt源码->应用 ![图片说明](https://img-ask.csdn.net/upload/202005/14/1589447380_576085.gif)

Qt Creator 用插件法编写一个自定义窗口部件

- 系统自身条件: (1)我的系统是linux,Qt Creator 5.0.2. (2)我是用Qt Creator自带的帮助文档中的例子(analogclock)。 按照说明一步一步做,构建通过,并且生成3个makefile文件,一个libanalogclockplugin.so文件,貌似这就是插件,我把它拷贝到Qt Creator中designer的插件目录下。本应该在Qt Creator重启后,可以在designer中可以看到这个插件,但是没有,从帮助中看到designer没有找到它。郁闷! 1. 做法 我是先在Qt Creator下新建一个用户自定义窗口部件的项目,将代码对应的一点点复制过去,在源代码结尾处,宏Q_EXPORT_PLUGIN2()是黑色的,据说没有用滴。我就改成Q_IMPORT_PLUGIN)就改了这个。

QtCreator构建程序后执行路径的问题

我用QtCreator创建一个工程,采用shadow build ,构建目录是E:\workbench\build-test-4_8_0-Debug 。编译程序后,可执行文件的路径是E:\workbench\build-test-4_8_0-Debug\debug。 我在程序中输出当前路径,发现是E:\workbench\build-test-4_8_0-Debug。可是exe文件的路径不是E:\workbench\build-test-4_8_0-Debug\debug吗??? 这个路径可定制吗?

qtcreator突然卡住不能用了

我装的是linux虚拟机,qtcreator上午还能用下午一打开页面就卡死了,assistant打开没问题,虚拟机有从新装了一遍,qt也是,还是卡的什么都不显式,但是能拖拽,这是怎么回事?

QtCreator中OpenGL配置GLFW库

我用QtCreator配置openGL的环境,GLAD库已经配置好了,编译也能通过。但是GLFW的库我折腾了半天都不行,qt的include文件夹我包含了GLFW的头文件,引用的时候输入#include<GLFW/glfw3.h>编译也能过,但是当我在main函数里调用glfwInit()函数的时候,就一直提示undefined reference to 'glfwinit'。 有大佬告知一下这什么情况吗,重复一下,我用的开发环境是QtCreator,不是vs,不是vs,不是vs。![图片说明](https://img-ask.csdn.net/upload/201908/30/1567151975_155057.png)

终端无法打开已经安装好的qtcreator

系统原本有qtcreator(3.5.1) 由于自己瞎捣鼓又使用sudo apt-get install qtcreator安装了一款旧版本的qtcreator(3.0.1) 发现旧版所以又卸载了 结果悲剧了,原先的3.5.1qtcreator在终端中打不开了。。 在搜索中可以找到,然后打开。。。

我用qtcreator(msvc2015)编译的程序发布问题

我下载了vs2015 64位的,然后下载了qt5.6(vs下的),我没有打开vs,直接在qtcreator下编写程序,现在发布程序的时候我用windeployqt 能自动加载我所需要的所有qt有关的dll,但是在别的没有vs2015的机器上运行部起来,确实vs2015的运行库,我现在临时解决方法是下载了vc_redist.x64.exe这个vs2015运行库。每次都要先运行下这个exe再运行我发布的那个exe,我想问下有没有vs2015对应的dll我能直接放入我的发布程序中,直接运行我发布的那个exe就可以运行程序。

现在的Qtcreator-community怎么运行ROS程序

我尝试用了以前的在启动文件加上-bash -i -c的代码,但是还是不能加载 catkin _ ws内的ROS程序,想问一下有人通过现在的Qtcreator-community成功读取ROS程序的吗?

CentOS上安装QT无法启动Qt Creator.

在CentOS 上安装官网下载的Linux最新版本QT,系统和QT安装包都是64位的。但是安装完之后,却无法启动Qt Creator.这究竟是怎么回事呢? [这是查看stdlibc++相关的内容信息!](https://img-ask.csdn.net/upload/201608/08/1470586712_791192.png) ![这是用命令行启动Qt Creator的显示的信息!!](https://img-ask.csdn.net/upload/201608/08/1470586832_914596.jpg) ![这是用命令行执行一个简单的QT程序显示的错误信息](https://img-ask.csdn.net/upload/201608/08/1470586891_88103.jpg) ![这里用命令查看是安装成功Qt的了](https://img-ask.csdn.net/upload/201608/08/1470586957_66360.jpg) ![这里是PATH变量的显示信息](https://img-ask.csdn.net/upload/201608/08/1470587077_320003.png) 这个问题纠结了好几天了,究竟问题出现在哪里呢,本人菜鸟,求大神出来帮帮小弟解决了这个问题。万分感谢ing......

如何使用Qtcreator运行ROS程序(bash -i -c的方法不能解决)

最近想用Qtcreator运行ROS程序,但是发现用Qtcreator中找不到ros的包,网上大家都说使用bash -i -c的方法可以解决,但是我试了一下发现并没有效果。 qt的版本为5.9.8,最近想用Qtcreator运行ROS程序4.8.2,Ubuntu系统16.04。

qtcreator 运行程序时可以构建通过,但总是程序异常结束

大神们,能帮我看看是哪的问题吗?最近在帮老师做项目,完不成的话会挨批的,然而qtcreator一直有问题啊啊啊,所以我很着急,希望大家能多多帮忙,谢谢大家了~~~!!!!新手没有钱,希望大家还是帮忙看看,好人会有福报的~~ qtcreator+MSVC2013+opencv2.4.9 构建时没有错误,但构建完成后程序总会异常结束,截图如下:![图片说明](https://img-ask.csdn.net/upload/201508/09/1439111989_302326.png) 我的.pro中的代码段如下: QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = practice TEMPLATE = app SOURCES += main.cpp\ mainwindow.cpp HEADERS += mainwindow.h FORMS += mainwindow.ui INCLUDEPATH+=.\ D:/opencv-2.4.9/build/include/opencv2\ D:/opencv-2.4.9/build/include/opencv\ D:/opencv-2.4.9/build/include CONFIG(release,debug|release) { LIBS+=D:/opencv-2.4.9/build/x64/vc12/lib/opencv_calib3d249.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_contrib249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_core249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_features2d249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_flann249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_gpu249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_highgui249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_imgproc249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_legacy249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ml249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_objdetect249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ts249.lib D:/opencv-2.4.9/build/x64/vc12/lib/opencv_video249.lib } CONFIG(debug,debug|release) { LIBS+=D:/opencv-2.4.9/build/x64/vc12/lib/opencv_calib3d249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_contrib249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_core249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_features2d249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_flann249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_gpu249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_highgui249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_imgproc249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_legacy249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ml249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_objdetect249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_ts249d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_*d.lib\ D:/opencv-2.4.9/build/x64/vc12/lib/opencv_video249d.lib } mainwindow.cpp如下: #include "mainwindow.h" #include "ui_mainwindow.h" #include "opencv2/opencv.hpp" #include <opencv2/core/core.hpp> #include <opencv2/imgproc/imgproc.hpp> #include <opencv2/highgui/highgui.hpp> #include <opencv2/features2d/features2d.hpp> #include <opencv2/nonfree/nonfree.hpp> using namespace cv; MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); Mat image=imread("church01.jpg"); } MainWindow::~MainWindow() { delete ui; } 只是在默认的情况下加了一个读程序的代码行Mat image=imread("church01.jpg");而已 如果把这一行去掉的话,则显示的mainwindow界面是这样的,我感觉有些异常: ![图片说明](https://img-ask.csdn.net/upload/201508/09/1439112313_545386.png) 关闭mainwindow窗口后,应用输出显示: C:\Users\lolo\Desktop\build-practice-Desktop_Qt_5_5_0_MSVC2013_64bit-Debug\debug\practice.exe exited with code 0 然后我就不知道这是怎么回事了,我是基于VS2013的qtcreator,我没有对qtcreator构建和运行那进行配置,都是默认的,如下: ![图片说明](https://img-ask.csdn.net/upload/201508/09/1439112586_128883.png) 大神们,能帮我看看是哪的问题吗?最近在帮老师做项目,完不成的话会挨批的,所以我很着急,希望大家能多多帮忙,谢谢大家了~~~!!!!

求教如何在qtcreator中使用rtidds

请教各位大神,如何在qtcreator中使用dds编程,系统是Ubuntu12.04 ,已经安装好dds了,可以跑事例程序,但不知道如何融入到qtcreator中,各位大神能否给予帮助

linux+opencv+qtcreator

博主,你好,今天看到你有关linux+opencv+qtcreator有关的文章很受启发,目前我有一个问题,就是我在Qtcreator中添加了opencv的include和lib库,然后写了一个打开图片的程序(里面有用到opencv语句),在虚拟机ubantu下是可以运行的,但是想生成Arm版的可执行文件就老报错。qtcreator里面的配置都没有问题,请问是什么原因呢.在这先谢谢博主了,我的qq:1208489229![图片说明](https://img-ask.csdn.net/upload/201505/27/1432714060_622961.png)

自定义控件插件,在qt creator中使用的时候,无法找到头文件

我今天直接通过qt creator中的worldTimeClockPlugin例子学习自定义控件的时候, 通过网上各位大神指点已经成功将该插件集成到qt creator中,主要参考了这篇文章:[qt5中自定义控件插件的问题](http://blog.csdn.net/ubiter/article/details/12757817 "qt5中自定义控件插件的问题")来实现,但当我使用该控件的时候,却出现了“无法打开包括文件:“worldtimecolock.h”:No such file”的错误。在工程的pro文件中设置了INCLUDEPATH也达不到目的,以下是pro文件: QT += core gui greaterThan(QT_MAJOR_VERSION, 4): QT += widgets TARGET = testPlugin TEMPLATE = app SOURCES += main.cpp\ testPluginwideget.cpp HEADERS += testPluginwideget.h FORMS += testPluginwideget.ui INCLUDEPATH +=D:\Qt\Qt5.4.1\Examples\Qt-5.4\designer\customwidgetplugin LIBS +=D:\Qt\Qt5.4.1\Examples\Qt-5.4\designer\customwidgetplugin\customwidgetplugin.lib

Qt5.5.1中Qt Creator中文乱码问题

今天简单设计了一个象棋的界面,但中文字符串乱码,这是怎么回事呢?网上说的很多都不适合Qt5版本,有没有合适的解决办法呢?谢谢。

2019 Python开发者日-培训

2019 Python开发者日-培训

150讲轻松搞定Python网络爬虫

150讲轻松搞定Python网络爬虫

设计模式(JAVA语言实现)--20种设计模式附带源码

设计模式(JAVA语言实现)--20种设计模式附带源码

YOLOv3目标检测实战:训练自己的数据集

YOLOv3目标检测实战:训练自己的数据集

java后台+微信小程序 实现完整的点餐系统

java后台+微信小程序 实现完整的点餐系统

三个项目玩转深度学习(附1G源码)

三个项目玩转深度学习(附1G源码)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

初级玩转Linux+Ubuntu(嵌入式开发基础课程)

2019 AI开发者大会

2019 AI开发者大会

玩转Linux:常用命令实例指南

玩转Linux:常用命令实例指南

一学即懂的计算机视觉(第一季)

一学即懂的计算机视觉(第一季)

4小时玩转微信小程序——基础入门与微信支付实战

4小时玩转微信小程序——基础入门与微信支付实战

Git 实用技巧

Git 实用技巧

Python数据清洗实战入门

Python数据清洗实战入门

使用TensorFlow+keras快速构建图像分类模型

使用TensorFlow+keras快速构建图像分类模型

实用主义学Python(小白也容易上手的Python实用案例)

实用主义学Python(小白也容易上手的Python实用案例)

程序员的算法通关课:知己知彼(第一季)

程序员的算法通关课:知己知彼(第一季)

MySQL数据库从入门到实战应用

MySQL数据库从入门到实战应用

机器学习初学者必会的案例精讲

机器学习初学者必会的案例精讲

手把手实现Java图书管理系统(附源码)

手把手实现Java图书管理系统(附源码)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

极简JAVA学习营第四期(报名以后加助教微信:eduxy-1)

.net core快速开发框架

.net core快速开发框架

玩转Python-Python3基础入门

玩转Python-Python3基础入门

Python数据挖掘简易入门

Python数据挖掘简易入门

微信公众平台开发入门

微信公众平台开发入门

程序员的兼职技能课

程序员的兼职技能课

Windows版YOLOv4目标检测实战:训练自己的数据集

Windows版YOLOv4目标检测实战:训练自己的数据集

HoloLens2开发入门教程

HoloLens2开发入门教程

微信小程序开发实战

微信小程序开发实战

Java8零基础入门视频教程

Java8零基础入门视频教程

相关热词 c# 解析cad c#数字格式化万 c#int转byte c#格式化日期 c# wpf 表格 c# 实现ad域验证登录 c#心跳包机制 c#使用fmod.dll c#dll vb 调用 c# outlook
立即提问
相关内容推荐