问题4-Q过程问题
Qt 4 - QProcess problems
我正在尝试编译一个包含QProcess调用的Qt4应用程序。
将其编译为发布版本是没有问题的,但当我执行调试版本时,我总是会收到SegmentionFault错误。
我的Qt版本是4.8.2,我在Fedora和Debian操作系统上尝试过。
你们中有人遇到过类似的问题吗?我想不通!
#include <QApplication>
#include "mainwindow.h"
#include <QProcess>
class MyApplication : public QApplication{
public:
QProcess * proc;
MyApplication(int argc, char** argv) : QApplication(argc, argv){
proc = new QProcess();
}
};
int main(int argc, char *argv[])
{
MyApplication a(argc, argv);
MainWindow w;
w.show();
return a.exec();
}
祝你今天愉快,Markus
崩溃是由以下行引起的:
MyApplication(int argc, char **argv);
您应该将其修改为:
MyApplication(int &argc, char **argv);
原因是,在没有参考的情况下,包含了一个临时副本,它基本上被销毁了,而它的地址仍然存储着。崩溃发生在访问之后。
请参阅QApplication
构造函数文档中的警告:
警告:argc和argv引用的数据必须在QCoreApplication对象的整个生命周期内保持有效。此外,argc必须大于零,argv必须至少包含一个有效字符串。
话虽如此,在您的情况下,可能不值得对QApplication
进行子类化。即使这样做了,也要确保不会通过不删除为使用QProcess
处理后台进程而创建的堆对象来泄漏内存。
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 递归函数计算序列中的平方和(并输出过程)
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 线程过程中的线程同步问题
- chrono::duration_cast在比率相乘过程中的问题
- 在 Makefile 中的链接过程中添加库时出现问题
- 在我的代码中执行存储过程时出现问题
- 在截断过程中乘以 2 个数字的问题
- 我正试图将一个过程的结果写入一个文本文件,我遇到的问题是列的对齐问题
- 如果"make -j2"和"make"可以加快制作过程并解决所有与制作序列相关的问题?
- 从c++DLL调用过程有什么问题
- 问题4-Q过程问题
- 关于过程和信号的概念性问题
- 请解释这个查找最大指针的过程有什么问题