Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ Qt: undefined reference to `_imp___ZN12QApplicationC1ERiPPci'

Tags:

c++

qt

I am trying to remind myself some C++, and also learn about Qt.

I am working on Windows. I have installed Qt (5.1.0), MinGW (g++ 4.6.2), Gnu Make (3.81).

I am trying to compile a simple Qt app. The most basic case is this:

#include <QtWidgets>
#include <QtGui>

int main (int argc, char* argv[]) {               
    QApplication app(argc, argv);                  
    QTextStream cout(stdout);                               
    return EXIT_SUCCESS;
}

The project file is:

TEMPLATE = app
TARGET = example1
INCLUDEPATH += .

# Input
SOURCES += fac1.cpp
QT += gui widgets core

When I run

qmake

it generates the Makefile.

But then with make I get this:

C:\src\early-examples\example1>make
make -f Makefile.Release
make[1]: Entering directory `C:/src/early-examples/example1'
g++ -Wl,-s -Wl,-subsystem,console -mthreads -o release\example1.exe release/fac1.o  -LC:\Qt\Qt5.1.0\\5.1.0\msvc2012_64\lib -lQt5Widgets -lQt5Gui -lQt5Core -llibEGL -llibGLESv2 -lgdi32 -luser32
release/fac1.o:fac1.cpp:(.text.startup+0x2e): undefined reference to `_imp___ZN12QApplicationC1ERiPPci'
release/fac1.o:fac1.cpp:(.text.startup+0x37): undefined reference to `_imp___ZN12QApplicationD1Ev'
collect2: ld returned 1 exit status
make[1]: *** [release\example1.exe] Error 1
make[1]: Leaving directory `C:/src/early-examples/example1'
make: *** [release] Error 2

Can you tell me what is wrong?

like image 960
ynka Avatar asked Aug 15 '13 19:08

ynka


1 Answers

The problem here is you appear to be using Visual Studio 2012 libraries for your mingw builds. You need to link to the mingw compiled Qt instead.

like image 145
drescherjm Avatar answered Oct 29 '22 18:10

drescherjm