2013-08-15 40 views
6

Tôi đang cố tự nhắc mình một số C++ và cũng tìm hiểu về Qt.C++ Qt: tham chiếu không xác định đối với `_imp___ZN12QApplicationC1ERiPPci '

Tôi đang làm việc trên Windows. Tôi đã cài đặt Qt (5.1.0), MinGW (g ++ 4.6.2), Gnu Make (3.81).

Tôi đang cố gắng biên dịch một ứng dụng Qt đơn giản. Trường hợp cơ bản nhất là:

#include <QtWidgets> 
#include <QtGui> 

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

Hồ sơ dự án là:

TEMPLATE = app 
TARGET = example1 
INCLUDEPATH += . 

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

Khi tôi chạy

qmake 

nó tạo ra Makefile.

Nhưng sau đó với make tôi có được điều này:

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 

Bạn có thể cho tôi biết những gì là sai?

+0

Dường như bạn đang trộn các trình biên dịch tại đây. Tại sao bạn sử dụng thư viện phòng thu trực quan với gcc? – drescherjm

+0

Tôi đang cố gắng sử dụng g ++, nhưng có thể có một số cài đặt/biến env mà tôi không biết. Làm thế nào bạn có thể nói? – ynka

+0

Hoặc bạn đang nói tôi phải sử dụng Visual Studio để sử dụng Qt? – ynka

Trả lời

8

Sự cố ở đây có vẻ như bạn đang sử dụng thư viện Visual Studio 2012 cho các bản dựng mingw của bạn. Bạn cần phải liên kết với Qt được biên dịch thay thế.

+0

Có. Tôi đã tải xuống (từ http://qt-project.org/downloads) Qt 5.1.0 cho Windows 64 bit (VS 2012, 525 MB) thay vì Qt 5.1.0 cho Windows 32 bit (MinGW 4.8, OpenGL, 666 MB). Làm việc tốt ngay bây giờ! – ynka

+1

Đây là lý do tại sao có quá nhiều bản phát hành nhị phân Qt khi tải xuống. Thậm chí việc trộn các phiên bản studio trực quan khác nhau cũng có thể gây ra vấn đề cho bạn. – drescherjm

0

Thêm "greaterThan (QT_MAJOR_VERSION, 4): QT + = widgets" vào tệp .pro của bạn

Các vấn đề liên quan