Qt Forum

    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Unsolved

    Undefined reference to external variable

    General and Desktop
    2
    2
    1570
    Loading More Posts
    • 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.
    • S
      Spike89 last edited by

      I declared here an extern variable:
      open.h
      @
      extern QString filename;
      @
      I defined here: open.cpp
      @
      void open::openfile()
      {
      QString filename=QFileDialog::getOpenFileName(
      0,
      QObject::tr("Open File"),
      ("C://"),
      ("BITMAP(*.bmp)")
      );
      QFile file(filename);
      file.open(QIODevice::ReadOnly);
      QByteArray ba=file.readAll();

      }
      

      @
      And i want to use here like this:
      mainwindow.cpp
      @
      ui->lineEdit->setText(filename);
      @
      But i got this error: undefined refernce to 'filename'
      What am i doing wrong?

      1 Reply Last reply Reply Quote 0
      • JKSH
        JKSH Moderators last edited by

        Hi,

        in your code, filename is a local variable inside your openfile() function. For it to be an extern variable, you need to define it outside all functions:

        @
        QString filename;

        void open::openfile()
        {
        filename = ...
        @

        However, consider redesigning your program. Minimize your use extern/global variables to make your code more maintainable -- make filename a member variable of an object instead.

        Qt Doc Search for browsers: forum.qt.io/topic/35616/web-browser-extension-for-improved-doc-searches

        1 Reply Last reply Reply Quote 0
        • First post
          Last post