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. Qt 5.10.1, MinGW 7.2.0, Error: "undefined reference to ..." defined Qt signals

Qt 5.10.1, MinGW 7.2.0, Error: "undefined reference to ..." defined Qt signals

Scheduled Pinned Locked Moved Solved General and Desktop
1 Posts 1 Posters 772 Views
  • 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.
  • D Offline
    D Offline
    drmhkelley
    wrote on last edited by
    #1

    Disclosure: I am not certain whether this question is a Qt question, MinGW linker question, or a MinGW library question.

    First, some background.

    I have some apps that I have successfully built on prior versions of Qt (5.9x, 5.10.0), using both the Qt Creator environment and using a recent MinGW (i686) compliler and linker. It is my understanding (but feel free to correct me) that both Qt Creator and the i686 MinGW compiler build 32-bit executables.

    However, I now have an app that ought to benefit from a 64-bit executable (large datasets requiring higher numeric precision). I presume that means I need the x86_64 complier from MinGW and a corresponding 64-bit build of Qt. I took this as motivation to install the most recent versions of Qt, MinGW, and various other libraries for numeric processing and such stuff. I have built and tested all of the various pieces required.

    Unfortunately, I am stuck when I try to incorporate a library of Qt widgets that I routinely use.

    For reasons driven by non-Qt parts of all this, I have found it beneficial generally to work outside of Qt Creator and use mingw32-make to build the apps.

    Now the present problem/symptom.

    A test app requires several Qt widgets, qtwidg-1.cpp, qtwidg-2.cpp, etc. I use two different methods to build the final app - one works, the other doesn't.

    Successful method: 1) moc.exe to build the required moc_qtwidg-1.cpp, moc_qtwidg2.cpp, etc. 2) Compile all .cpp files with g++. Use the g++ linker is used to pull everthing into app.exe. The resulting app works.

    However, since all of the qtwidg-x.cpp are used by many apps, I want to put them into a re-usable library, which leads to the other method.

    Unsuccessful method: 1) same as above. 2) same as above 3) create a library with the same .o files as above using ar.exe. 4) Tell the g++ linker to load that library. In the past, this method has worked - now it doesn't.

    The errors are of the form "undefined reference to `myQLE::escape(QWidget*)" where "escape" is a Qt signal defined in myqle.hpp. Each and every signal is marked as an undefined reference.

    Does anyone have a suggestion where to start looking for the underlying source of this behavior?

    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