Unable to build my first QT Application
-
Hi all,
I'm new to developing with QT, but I'd like to develop c++ application using this framework.
Since I'm blind and QT Creator has some important accessibility issues in Mac OS X, I thought I could develop QT-Based applications using the QMake command line tool. However, I am not able to build my first application. Running QMake to generate the makefile doesn't give me any warning nor error, but running the make command I get the following output:
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang++ -headerpad_max_install_names -Wl,-syslibroot,/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk -mmacosx-version-min=10.6 -o ts.app/Contents/MacOS/ts -F/Users/my_username/Downloads/qt_src/qtbase/lib -framework QtGui -framework QtCore -framework OpenGL -framework AGL
Undefined symbols for architecture x86_64:
"_main", referenced from:
start in crt1.10.6.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [ts.app/Contents/MacOS/ts] Error 1The app is named ts. Here's the ts.pro file content:
TEMPLATE = app
TARGET = ts
QT = core gui
sources += main.cppAnd here's my very very simple main.cpp content:
#include <QApplication>using namespace std;
int main(int argc, char* *argv) {
QApplication myApp(argc, argv);
return(myApp.exec());
}After running make, I get an app bundle, but I cannot run it; Mac OS X tells me that it is damaged or incomplete and, in fact, it misses the main executable.
I'm running Mac OS X 10.9.2; I'm using QT 5.2.1 and I have installed Xcode 5.1. Not sure if this is important, but since the QT Installer is not accessible, I built QT from source.
Any help is very appreciated, since I don't know what to do to solve the problem. Thanks in advance.
-
sources keyword should be all CAPITAL
@
TEMPLATE = app
TARGET = ts
QT = core gui
SOURCES += main.cpp
@ -
Hi andreyc,
thank you very much for your help. I really didn't notice that. :-)
Now I'm getting another error, though; when I run make, it tells me that it cannot find the QApplication file. So I guess QMake doesn't know where the QT libraries are; how can I supply this information, so that it can find the needed files?
-
QApplication is a part of QWidgets framework
see here "the list of all modules in Qt5":http://qt-project.org/doc/qt-5/qmake-variable-reference.html#qt that qmake will recognize.to make QApplication visible to qmake set QT += widgets
@
TEMPLATE = app
TARGET = ts
QT += widgets
SOURCES += main.cpp
@ -
Hi andreyc,
once again, thank you very much. I finally got my first QT Application running on Mac OS X! :-)
I could never immagine that QT core and QT GUI weren't enough to get the QApplication file; in fact, I wrote the pro file following this tutorial:
http://qt-project.org/wiki/Qt_for_beginners_Hello_World
Is there any way to report that the documentation is incorrect?
-
Hi,
This article might have been written with Qt 4 in mind. Anyway I've updated it so it's also valid for Qt 5.
-
Hi falcon03,
The images in your page are not available.You don't need to assign QT to gui and core, these modules are included by default. In fact if you want to create a console application or a library then you have to disable gui module
@
QT -= gui
@