2015-07-22 3 views
0

Je suis un débutant Qt, j'ai la version 5.2.1 et j'essayais d'apprendre Qt/QML à partir d'un livre sur Github. Cependant, c'est l'un des exemples les plus élémentaires:Exemple de widget Qt personnalisé dans les erreurs Qt Creator

#ifndef CUSTOMWIDGET_H 
#define CUSTOMWIDGET_H 

#include <QtWidgets> 

class CustomWidget : public QWidget 
{ 
    Q_OBJECT 
public: 
    explicit CustomWidget(QWidget *parent = 0); 
    void paintEvent(QPaintEvent *event); 
    void mousePressEvent(QMouseEvent *event); 
    void mouseMoveEvent(QMouseEvent *event); 
private: 
    QPoint m_lastPos; 
}; 

#endif // CUSTOMWIDGET_H 

Et voici les erreurs je reçois:

fonction ln `_start »

référence non définie à `main'

collect2: ld retourné 1 état de sortie

Je ne sais pas ce que tout cela signifie, donc toute aide serait appréciée. J'ai fait le projet en tant que Qt Quick Application.

Ceux-ci sont inclus dans le fichier .pro

QT += core gui 

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets 
+1

probablement vous avez copié * .h et * les fichiers .cpp appartiennent à la classe CustomWidget et ne copie main.cpp donc éditeur de liens ne peut pas trouver du point d'entrée – folibis

+0

Oui, c'est ce qui me fait idiot. Je vous remercie. – user112926

Répondre

1

D'abord, vous devez aller sur Google et chercher les erreurs, vous pouvez les trouver et la solution, et certaines solutions sont ici en stackoverflow aussi.

Pour ce que je peux aider et espérons qu'il vous aidera:

  1. ln function _start' Avec seulement que je ne sais pas ce que cela signifie, vous pouvez copier l'erreur complète? Peut-être this peut vous aider

  2. undefined reference to main' Fondamentalement, vous faites un exemple dans un nouveau projet, je supose donc il n'y a pas de fonction main(), qui est de base pour tout programme à exécuter. Vous pouvez ajouter un ou main.cpp déclarer globaly comme void main() {} Essayez de regarder this et this

  3. collect2: ld returned 1 exit status signifie que quelque chose ne va pas (il y a des erreurs avant cette ligne), de sorte que c'est pourquoi la dernière erreur.