IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Qwt Discussion :

Runtime error library


Sujet :

Qwt

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Runtime error library
    Salut a tous

    cela fait plusieurs jours que je galère pour faire marcher un des exemples qwt fournis avec l'instal
    (j'ai réussi a compiler les exemple de la doc et à les faire tourner! mais la je veut qu'il marche avec mon propre fichier .pro )

    J'ai lu de nombreux sujets sur internet sur comment modifier sont .pro et compagnie mais j'ai toujours la même erreur de runtime library quand je lance l'exe.
    Pour ce qui est de la compilation il n'y a pas de problème.

    j'ai donc ensuite essayé avec des exemples de la doc , ici avec une simple courbe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
     
    #include <qapplication.h>
    #include <qwt_plot.h>
    #include <qwt_plot_marker.h>
    #include <qwt_plot_curve.h>
    #include <qwt_legend.h>
    #include <qwt_data.h>
    #include <qwt_text.h>
    #include <qwt_math.h>
    #include <math.h>
     
    //-----------------------------------------------------------------
    //              simple.cpp
    //
    //      A simple example which shows how to use QwtPlot and QwtData
    //-----------------------------------------------------------------
     
    class SimpleData: public QwtData
    {
        // The x values depend on its index and the y values
        // can be calculated from the corresponding x value. 
        // So we don´t need to store the values.
        // Such an implementation is slower because every point 
        // has to be recalculated for every replot, but it demonstrates how
        // QwtData can be used.
     
    public:
        SimpleData(double(*y)(double), size_t size):
            d_size(size),
            d_y(y)
        {
        }
     
        virtual QwtData *copy() const
        {
            return new SimpleData(d_y, d_size);
        }
     
        virtual size_t size() const
        {
            return d_size;
        }
     
        virtual double x(size_t i) const
        {
            return 0.1 * i;
        }
     
        virtual double y(size_t i) const
        {
            return d_y(x(i));
        }
    private:
        size_t d_size;
        double(*d_y)(double);
    };
     
    class Plot : public QwtPlot
    {
    public:
        Plot();
    };
     
     
    Plot::Plot()
    {
        setTitle("A Simple QwtPlot Demonstration");
        insertLegend(new QwtLegend(), QwtPlot::RightLegend);
     
        // Set axis titles
        setAxisTitle(xBottom, "x -->");
        setAxisTitle(yLeft, "y -->");
     
        // Insert new curves
        QwtPlotCurve *cSin = new QwtPlotCurve("y = sin(x)");
    #if QT_VERSION >= 0x040000
        cSin->setRenderHint(QwtPlotItem::RenderAntialiased);
    #endif
        cSin->setPen(QPen(Qt::red));
        cSin->attach(this);
     
        QwtPlotCurve *cCos = new QwtPlotCurve("y = cos(x)");
    #if QT_VERSION >= 0x040000
        cCos->setRenderHint(QwtPlotItem::RenderAntialiased);
    #endif
        cCos->setPen(QPen(Qt::blue));
        cCos->attach(this);
     
        // Create sin and cos data
        const int nPoints = 100;
        cSin->setData(SimpleData(::sin, nPoints));
        cCos->setData(SimpleData(::cos, nPoints));
     
        // Insert markers
     
        //  ...a horizontal line at y = 0...
        QwtPlotMarker *mY = new QwtPlotMarker();
        mY->setLabel(QString::fromLatin1("y = 0"));
        mY->setLabelAlignment(Qt::AlignRight|Qt::AlignTop);
        mY->setLineStyle(QwtPlotMarker::HLine);
        mY->setYValue(0.0);
        mY->attach(this);
     
        //  ...a vertical line at x = 2 * pi
        QwtPlotMarker *mX = new QwtPlotMarker();
        mX->setLabel(QString::fromLatin1("x = 2 pi"));
        mX->setLabelAlignment(Qt::AlignLeft | Qt::AlignBottom);
        mX->setLabelOrientation(Qt::Vertical);
        mX->setLineStyle(QwtPlotMarker::VLine);
        mX->setLinePen(QPen(Qt::black, 0, Qt::DashDotLine));
        mX->setXValue(2.0 * M_PI);
        mX->attach(this);
    }
     
    int main(int argc, char **argv)
    {
        QApplication a(argc, argv);
     
        Plot plot;
    #if QT_VERSION < 0x040000
        a.setMainWidget(&plot);
    #endif
        plot.resize(600,400);
        plot.show();
        return a.exec(); 
    }
    L'erreur vient surement de mon fichier pro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    TEMPLATE = app
     
    QWT_DIR = C:\Qwt-5.2.0
     
    DEFINES += QT_DLL QWT_DLL
     
    INCLUDEPATH += $$QWT_DIR\include
     
    LIBS += -L$$QWT_DIR\lib -lqwt5
     
    # Input
    SOURCES += simple.cpp
    J'ai vraiment besoin d'utiliser cette bibliothèque , car je doit utiliser qwt polair lors du developpement d'une application pour un stage !

    config :
    win vista
    QT 4
    QWT 5.2.0

    ps : dans mon dossier ou est crée l'exe je place les dll suivantes :
    mingwm10
    QtCore4
    QtCored4
    QtGui4
    QtGuid4
    QtSvg4
    qwt5

    A priori doit pas en manquer
    mais on est jamais a l'abri !!


    Si quelqu'un a un début de réponse je suis preneur, bonne journée

  2. #2
    Membre averti

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2006
    Messages
    281
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 281
    Points : 356
    Points
    356
    Par défaut
    Bonjour,

    Qwt est basé sur Qt. Donc il a besoin de certain symboles liés à Qt. En mode debug, l'application, Qt et Qwt utilise des symboles communs différents de ceux utilisés en release. Donc deux solutions :

    Soit compiler l'application en release avec le fichier .pro tel quel.
    Ou alors, je préfére celle-ci, ajouter au fichier .pro :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    build_pass:CONFIG(debug, debug|release) {
            LIBS += -lqwtd5
    }
     
    build_pass:CONFIG(release, debug|release) {
            LIBS += -lqwt5
    }
    et ne pas oublier de copier la dll manquante : qwt5d.dll

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Alors dèjà t'a première solution marche , donc merci merci ^^

    mais bon je vois bien que la seconde permet le debug contrirement a la première si j'ai pigé ^^

    le problème de la seconde solution est que qwt ne m'a pas crée de variable lqwtd5 lors de son install, alors comment puis_je la creer ??

    et encore merci pour ces informations !!


    Alors j'ai créer ma dll lqwtd5 avec : dans qwtconfig.pri

    #CONFIG += release # release/debug/debug_and_release
    CONFIG += release_and_release
    #CONFIG += build_all

    mon programme compile mais après toujours cet erreur de runtime library .
    alors que j'ai mis les lignes dans le .pro

    ...


    OK alors autant pour mou xD
    Le problème c'est que je répond avant d'avoir tout essayer faut me comprendre aussi j'ai perdu une journée sur ce truc !!

    En faite j'avais oublié d'enlever la ligne libs de mon . pro avant de mettre les tiennes donc ok ca roule maintenant.

    Voici mon .pro définitif :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    TEMPLATE = app
     
    QWT_DIR = C:\Qt\qwt-5.2.0
     
    DEFINES += QT_DLL QWT_DLL
     
    INCLUDEPATH += $$QWT_DIR\include
     
    CONFIG(debug, debug|release) {
    LIBS += -L$$QWT_DIR\lib -lqwtd5
    } else {
    LIBS += -L$$QWT_DIR\lib -lqwt5
    }
     
    # Input
    SOURCES += simple.cpp
    Et encore merci a toi ++

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. débusquer un runtime error library
    Par eomer212 dans le forum MFC
    Réponses: 0
    Dernier message: 31/03/2010, 18h24
  2. [LG]Runtime Error lors d'une recherche dans un fichier
    Par Fraynor dans le forum Langage
    Réponses: 2
    Dernier message: 15/03/2005, 23h51
  3. [TP]Runtime error 106 à l'exécution
    Par BlackTiger dans le forum Turbo Pascal
    Réponses: 2
    Dernier message: 25/01/2004, 22h50
  4. [LG]runtime error 202
    Par picsou123 dans le forum Langage
    Réponses: 2
    Dernier message: 14/11/2003, 23h53
  5. [Kylix] Runtime error 230 avec INDY
    Par Anonymous dans le forum EDI
    Réponses: 2
    Dernier message: 23/03/2002, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo