QProcess Сегментацыя няспраўнасцяў на старце ()

Я пішу клас праграмы-будаўнік. І ў мяне ёсць памылка сегментацыі.

#ifndef BUILDER_H
#define BUILDER_H

#include 
#include 
#include 
#include 

class Builder : public QProcess
{
Q_OBJECT
public:
    explicit Builder(QObject *parent = 0);
    void loadSource(QString fpath);
    bool isBuilded();

private:
    QProcess* shell;
    QString source;
    QString path;
    QString module;

signals:
    void sourceLoaded();
    void builded();

protected slots:
    void build();

};

#endif//BUILDER_H

І .cpp:

#include "builder.h"

Builder::Builder(QObject *parent) :
    QProcess(parent)
{
    connect(this,SIGNAL(sourceLoaded()),this,SLOT(build()));
    connect(this,SIGNAL(finished(int)),this,SIGNAL(builded()));
}

void Builder::loadSource(QString fpath)
{
    source = fpath;
    QFileInfo info(source);
    path = info.absoluteDir().absolutePath();
    module = path+info.baseName();
    emit sourceLoaded();
}

bool Builder::isBuilded()
{
    if(QFile::exists(module))
        return true;
    return false;
}

void Builder::build()
{
    QStringList argv;
    argv << source;
    start("g++",argv);
}

Мой код, скампіляваць праграму, якая дае ў loadSource (QString).

Калі я пачынаю старт() функцыя праграма вяртае сігнал SISSEGV. Я не бачу памылку.

0
не хапае маны! Нам трэба больш кода! Рэалізацыя класа Builder выглядае дастаткова добра, каб скампіляваць і нават працаваць ... АЛЕ, як вы карыстаецеся клас Builder?
дададзена аўтар Kamil Klimek, крыніца
Вы EXEC свой QApplication або асобнік QCoreApplication? Механізм сігнал-слот залежыць ад цыклу апрацоўкі падзей для шматструменных выпадкаў. Ці можаце вы ўявіць, як вы выкарыстоўвалі гэты клас?
дададзена аўтар blottedscience, крыніца

адказаў няма

0