Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Error LNK2019: unresolved external symbol

Error LNK2019: unresolved external symbol

Scheduled Pinned Locked Moved General and Desktop
12 Posts 8 Posters 57.1k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • M Offline
    M Offline
    Muhammad
    wrote on last edited by
    #1

    I've been through 20 subject about this error, but I didn't figure how to fix it
    -I'm using Qt 5.0.1, Qtcreatro 2.6.2 - with visual studio 2010 on windows 7 64bit
    Here is my code
    the .pro file
    @#-------------------------------------------------

    Project created by QtCreator 2013-02-02T23:22:32

    #-------------------------------------------------

    QT += core gui

    greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

    TARGET = first
    TEMPLATE = app
    SOURCES += main.cpp
    mycalculator.cpp
    display.cpp

    HEADERS += mycalculator.h
    display.h

    OTHER_FILES +=
    Comments.txt
    @

    *The .h file *

    @#ifndef MYCALCULATOR_H
    #define MYCALCULATOR_H
    #include <QPushButton>
    #include <QTextEdit>
    #include "display.h"
    class MyCalculator : public QWidget
    {
    Q_OBJECT
    public:
    MyCalculator(QWidget *parent = 0);
    //QSize sizeHint() const;
    private:
    Display *mydisplay;
    enum{digitArrayIndex = 10};
    QPushButton *digitButtons[digitArrayIndex];
    QPushButton *addButton,*subButton,*mulButton,*divButton;
    //there is 6 functions for now
    QPushButton *sinButton,*cosButton,*tanButton;
    QPushButton *powerButton,*sqrtButton,*lnButton;
    QPushButton *equalButton,*pointButton,*clearButton,*delButton,*ansButton;
    private slots:
    void digitClicked();
    void operationClicked();
    void functionClicked();
    void equalClicked();
    void pointClicked();
    void clearClicked();
    void delClicked();
    void ansClicked();
    private: //functions
    QPushButton *createButton(const QString &text, const char *buttonSlot);
    };
    #endif // MYCALCULATOR_H@

    *The .cpp file *

    @#include <QGridLayout>
    #include <QScrollArea>
    #include "mycalculator.h"
    #include "display.h"
    MyCalculator::MyCalculator(QWidget *parent)
    : QWidget(parent)
    {
    QGridLayout *myBasicGrid = new QGridLayout(this);
    myBasicGrid->setSizeConstraint(QLayout::SetFixedSize);
    mydisplay = new Display;
    //Implement operation buttons
    addButton = createButton("+",SLOT(operationClicked()));
    subButton = createButton("-",SLOT(operationClicked()));
    mulButton = createButton("\303\227",SLOT(operationClicked()));
    divButton = createButton("\303\267",SLOT(operationClicked()));
    //Implement function buttons
    sinButton = createButton("sin",SLOT(functionClicked()));
    cosButton = createButton("cos",SLOT(functionClicked()));
    tanButton = createButton("tan",SLOT(functionClicked()));
    powerButton = createButton("x\302\262",SLOT(functionClicked()));
    sqrtButton = createButton("\342\210\232",SLOT(functionClicked()));
    lnButton = createButton("ln",SLOT(functionClicked()));
    //The rest of the buttons
    equalButton = createButton("=",SLOT(equalClicked()));
    pointButton = createButton(".",SLOT(pointClicked()));
    ansButton = createButton("Ans",SLOT(ansClicked()));
    delButton = createButton("DEL",SLOT(delClicked()));
    clearButton = createButton("AC",SLOT(clearClicked()));
    //The digit buttons
    digitButtons[0] = createButton("0",SLOT(digitClicked()));
    for(int i = 1; i<digitArrayIndex; i++){
    digitButtons[i] = createButton(QString::number(i),SLOT(digitClicked()));
    int row = ((9 - i) / 3) + 2;
    int column = ((i - 1) % 3);
    myBasicGrid->addWidget(digitButtons[i],row,column); //Adding the digit buttons to the grid
    }

    //layout the display and the rest of the buttons
    //myBasicGrid->addWidget(mydisplay,0,0,1,5);
    myBasicGrid->addWidget(digitButtons[0],5,0);
    myBasicGrid->addWidget(sinButton,1,0);
    myBasicGrid->addWidget(cosButton,1,1);
    myBasicGrid->addWidget(tanButton,1,2);
    myBasicGrid->addWidget(powerButton,1,3);
    myBasicGrid->addWidget(sqrtButton,1,4);
    myBasicGrid->addWidget(delButton,2,3);
    myBasicGrid->addWidget(clearButton,2,4);
    myBasicGrid->addWidget(mulButton,3,3);
    myBasicGrid->addWidget(divButton,3,4);
    myBasicGrid->addWidget(addButton,4,3);
    myBasicGrid->addWidget(subButton,4,4);
    myBasicGrid->addWidget(pointButton,5,1);
    myBasicGrid->addWidget(lnButton,5,2);
    myBasicGrid->addWidget(ansButton,5,3);
    myBasicGrid->addWidget(equalButton,5,4);
    

    }

    //Slots implemetation
    void MyCalculator::digitClicked()
    {
    }
    void MyCalculator::operationClicked()
    {
    }
    void MyCalculator::functionClicked()
    {
    }
    void MyCalculator::equalClicked()
    {
    }
    void MyCalculator::pointClicked()
    {
    }

    void MyCalculator::clearClicked()
    {
    }
    void MyCalculator::delClicked()
    {
    }
    void MyCalculator::ansClicked()
    {
    }
    //functions implimintation
    QPushButton *MyCalculator::createButton(const QString &text, const char *buttonSlot){
    QPushButton *button = new QPushButton(text);
    connect(button, SIGNAL(clicked()), this, buttonSlot);
    return button;
    }@

    *and the display.h *file // another class I created and Inherited form QTextEdit
    @#ifndef DISPLAY_H
    #define DISPLAY_H

    #include <QTextEdit>

    class Display : public QTextEdit
    {
    Q_OBJECT
    public:
    explicit Display(QWidget *parent = 0);
    };
    #endif // DISPLAY_H@

    *the display.cpp file *

    @#include "display.h"

    Display::Display(QWidget *parent) :
    QTextEdit(parent)
    {
    }@

    And here is the error

    @ : error LNK2019: unresolved external symbol "public: __thiscall Display::Display(class QWidget *)" (??0Display@@QAE@PAVQWidget@@@Z) referenced in function "public: __thiscall MyCalculator::MyCalculator(class QWidget *)" (??0MyCalculator@@QAE@PAVQWidget@@@Z)
    debug\first.exe : fatal error LNK1120: 1 unresolved externals
    jom: C:\Users\FBM\Desktop\Calculator\first-build-Desktop_Qt_5_0_1_MSVC2010_32bit-debug\Makefile.Debug [debug\first.exe] Error 1120@
    When I comment the code in line 13 of the .cpp file the program works fine.
    Any help plz

    I don't have endpoint, I just have Checkpoints.

    1 Reply Last reply
    0
    • francescmmF Offline
      francescmmF Offline
      francescmm
      wrote on last edited by
      #2

      You should include QFont:

      @#include <QFont>@

      In addition, in the .cpp file I cannot see when you create the "display" object:

      @//display->setReadOnly(true);
      /QFont displayFont = display->font();
      displayFont.setPointSize(displayFont.pointSize() + 4);
      display->setFont(displayFont);
      /
      //Implement operation buttons@

      1 Reply Last reply
      0
      • M Offline
        M Offline
        Muhammad
        wrote on last edited by
        #3

        Forget about the font and all of these stuff they are commented ,any way I edited the post and deleted them.
        The creation of the Display object is in line 10

        I don't have endpoint, I just have Checkpoints.

        1 Reply Last reply
        0
        • B Offline
          B Offline
          b1gsnak3
          wrote on last edited by
          #4

          Well... I don't see the #include <QWidget> anywhere in your headers

          1 Reply Last reply
          0
          • G Offline
            G Offline
            goblincoding
            wrote on last edited by
            #5

            [quote author="b1gsnak3" date="1360246401"]Well... I don't see the #include <QWidget> anywhere in your headers[/quote]

            This won't be required as it's part of the inheritance chain.

            http://www.goblincoding.com

            1 Reply Last reply
            0
            • francescmmF Offline
              francescmmF Offline
              francescmm
              wrote on last edited by
              #6

              I have tried to compile your program and it runs well for me. May be you could re-generate the Makefile and then clean project and re-compile again?

              When I had these problems I had some methods declared but not implemented. Can ensure yourself that all the code posted is that you have?

              We will solve this issue!

              1 Reply Last reply
              0
              • JeroentjehomeJ Offline
                JeroentjehomeJ Offline
                Jeroentjehome
                wrote on last edited by
                #7

                What usually works for me is to through away the entire build directory that Qt creates when debugging or running a program. This will remove all files generated by QMake (also your ui files). Then rebuild the program. Problem might be fixed then.
                greetz

                Greetz, Jeroen

                1 Reply Last reply
                0
                • M Offline
                  M Offline
                  Muhammad
                  wrote on last edited by
                  #8

                  Yes Thanks guys It did work after deleting the build folder, restart and rebuild :).

                  I don't have endpoint, I just have Checkpoints.

                  1 Reply Last reply
                  0
                  • U Offline
                    U Offline
                    utcenter
                    wrote on last edited by
                    #9

                    I often get such errors, 99.99% of the time it is solved by clicking "clean all" then "run qmake" then "rebuild all".

                    1 Reply Last reply
                    0
                    • I Offline
                      I Offline
                      inejose
                      wrote on last edited by
                      #10

                      [quote author="utcenter" date="1360368863"]I often get such errors, 99.99% of the time it is solved by clicking "clean all" then "run qmake" then "rebuild all".[/quote]

                      The 0.01% remaining could be missing the name space in the .cpp file. For example:

                      You define a function in your class header (MyClass.h) :

                      @ int myFunction(int a, int b);@

                      But in the MyClass.cpp you miss the namespace:

                      @int myFunction(int a, int b){
                      // ...
                      }@

                      instead of

                      @int Class::myFunction(int a, int b){
                      // ...
                      }@

                      When calling that "myFunction" in your code, the error appears.

                      call it version 1.0 <a href="http://www.clicpsicologos.com">psicologo online</a> & <a href="http://www.isomus.com">musicoterapia</a>

                      1 Reply Last reply
                      0
                      • Q Offline
                        Q Offline
                        QtSurfer
                        wrote on last edited by
                        #11

                        Worked for me on a project getting this error code :
                        [quote author="utcenter" date="1360368863"]I often get such errors, 99.99% of the time it is solved by clicking "clean all" then "run qmake" then "rebuild all".[/quote]

                        Sir, you rock

                        1 Reply Last reply
                        0
                        • Q Offline
                          Q Offline
                          QtSurfer
                          wrote on last edited by
                          #12

                          Worked for me on a project getting this error code :
                          [quote author="utcenter" date="1360368863"]I often get such errors, 99.99% of the time it is solved by clicking "clean all" then "run qmake" then "rebuild all".[/quote]

                          Sir, you rock

                          1 Reply Last reply
                          0

                          • Login

                          • Login or register to search.
                          • First post
                            Last post
                          0
                          • Categories
                          • Recent
                          • Tags
                          • Popular
                          • Users
                          • Groups
                          • Search
                          • Get Qt Extensions
                          • Unsolved