Qt app without window manager.
-
Unless you explicitly need webkit you should just not build it. That will save time and hassle
-
IIRC, building webkit statically has always been problematic.
Also, don't forget the licensing implication of building Qt statically
-
Ahhh painful.
The error now is:
@make[3]: Leaving directory
/home/user/Qt5.1Git/qt5/qtbase/src/network' make[3]: Entering directory
/home/user/Qt5.1Git/qt5/qtbase/src/network'
make[3]: Warning: File../../.qmake.cache' has modification time 1.6e+04 s in the future /home/user/Qt5.1Git/qt5/qtbase/bin/qmake -o Makefile network.pro Project MESSAGE: perl -w /home/user/Qt5.1Git/qt5/qtbase/bin/syncqt.pl -module QtNetwork -version 5.1.2 -outdir /home/user/Qt5.1Git/qt5/qtbase /home/user/Qt5.1Git/qt5/qtbase <srcbase> = /home/user/Qt5.1Git/qt5/qtbase <outbase> = /home/user/Qt5.1Git/qt5/qtbase make[3]: Leaving directory
/home/user/Qt5.1Git/qt5/qtbase/src/network'
make[3]: Entering directory/home/user/Qt5.1Git/qt5/qtbase/src/network' make[3]: Warning: File
../../.qmake.cache' has modification time 1.6e+04 s in the future
/home/user/Qt5.1Git/qt5/qtbase/bin/qmake -o Makefile network.pro
Project MESSAGE: perl -w /home/user/Qt5.1Git/qt5/qtbase/bin/syncqt.pl -module QtNetwork -version 5.1.2 -outdir /home/user/Qt5.1Git/qt5/qtbase /home/user/Qt5.1Git/qt5/qtbase
<srcbase> = /home/user/Qt5.1Git/qt5/qtbase
<outbase> = /home/user/Qt5.1Git/qt5/qtbase
@it is constantly printing this. Looks like it is stuck in a loop printing this all the time.
-
You seem to have some problem with your system clock...
You should restart your build from a clean source tree and use a shadow build directory.
-
This line
@make[3]: Warning: File `../../.qmake.cache' has modification time 1.6e+04 s in the future
@made me think of a clock problem
-
Finally some progress.
The build finished fine. I also built my first app. All ok.
But when i try to run the app i get an error:
@QFontDatabase: Cannot find font directory /usr/local/Qt-5.1.2/lib/fonts - is Qt installed correctly?@At this stage i haven't executed make install . A note on the guide says :
@Note: Installation is only needed if you haven’t used the configure options -developer-build or -prefix “PWD/qtbase”. Otherwise you can just use Qt from the build directory.@And i didn't put -developer-build in my build configuration.
Could this be the problem? -
You need to have this folder on your target computer
-
/usr/local/Qt-5.1.2/lib/fonts, you need it on your target computer, the one running without window manager. It must contain the font files
-
Ok, on dev platform it worked. The compiled binary is around 150MB.
In the target at first it failed because it couldn't find libicudata.so.48 libicuuc.so.48 libicui18n.so.48 which is strange because i compiled it statically.
Do i need any thing extra in the .pro file for static building the app ?After copying the requested libs in the target /usr/lib a new error appeared:
@QXcbConnection Could not connect to display@ -
You can build a static library but still have shared dependency.
IIRC you need to tell your application which plugin you want to use
-
Ok, but why is qt still trying to use xcb, i built it for linuxfb?
My build configuration is:
@./configure -opensource -release -force-debug-info -confirm-license -static -qt-sql-mysql -qt-zlib -qt-libpng -qt-libjpeg -no-openssl -no-pch -linuxfb -nomake examples -nomake tests
@ -
Just wild guess, but it might be that linuxfb is built additionally to xcb
-
I just finnished rebuilding a fresh copy and if put -no-xcb the compilation fails with error:
@g++ -Wl,-rpath-link,/qt51/qtjsbackend/lib -o ../../bin/qmlplugindump .obj/release-static/main.o .obj/release-static/qmlstreamwriter.o .obj/release-static/qmlplugindump_plugin_import.o -L/qt51/qtdeclarative/lib -lQt5Quick -L/qt51/qtbase/lib -L/qt51/qtjsbackend/lib -lQt5Qml -lQt5V8 -lQt5Network -L/qt51/qtbase/plugins/platforms -lqminimal -lQt5PlatformSupport -lfontconfig -lfreetype -lXext -lX11 -lXrender -lQt5Gui -lQt5Core -licui18n -licuuc -lm -ldl -pthread -lgthread-2.0 -lglib-2.0 -lrt -lGL -lpthread
/usr/bin/ld: cannot find -lqxcb
collect2: error: ld returned 1 exit status
make[3]: *** [../../bin/qmlscene] Error 1
make[3]: Leaving directory/qt51/qtdeclarative/tools/qmlscene' make[2]: *** [sub-qmlscene-make_first] Error 2 make[2]: *** Waiting for unfinished jobs.... /qt51/qtbase/lib/libQt5Gui.a(qimage.o): In function
memset':
/usr/include/i386-linux-gnu/bits/string3.h:81: warning: memset used with constant zero length parameter; this could be due to transposed parameters
make[3]: Leaving directory/qt51/qtdeclarative/tools/qmlplugindump' make[2]: Leaving directory
/qt51/qtdeclarative/tools'
make[1]: *** [sub-tools-make_first] Error 2
make[1]: Leaving directory `/qt51/qtdeclarative'
make: *** [module-qtdeclarative-make_first] Error 2
@ -
Did you cleanup before rebuilding ?
-
Did you try with -qpa linuxfb ?
-
This is my configuration now:
@sudo ./configure -opensource -release -force-debug-info -confirm-license -static -qt-sql-mysql -qt-zlib -qt-libpng -qt-libjpeg -no-openssl -no-pch -qpa linuxfb -no-xcb -nomake examples -nomake tests@@Build options:
Configuration .......... accessibility alsa audio-backend avx avx2 c++11 clock-gettimeclock-monotonic compile_examples concurrent cups dbus evdev eventfd fontconfig
force_debug_info full-config getaddrinfo getifaddrs gif glib gstreamer gtk2 gtkstyle iconv
icu inotify ipv6ifname jpeg large-config largefile linuxfb medium-config minimal-config
mremap nis opengl pcre png pulseaudio qpa qpa reduce_exports reduce_relocations release rpath
small-config sse2 sse3 sse4_1 sse4_2 ssse3 static system-freetype v8 v8snapshot xlib xrender
zlib
Build parts ............ libs tools
Mode ................... release (with debug info)
Using C++11 ............ yes
Using PCH .............. no
Target compiler supports:
SSE2/SSE3/SSSE3 ...... yes/yes/yes
SSE4.1/SSE4.2 ........ yes/yes
AVX/AVX2 ............. yes/yesQt modules and options:
Qt D-Bus ............... yes (loading dbus-1 at runtime)
Qt Concurrent .......... yes
Qt GUI ................. yes
Qt Widgets ............. yes
JavaScriptCore JIT ..... yes (To be decided by JavaScriptCore)
QML debugging .......... yes
Use system proxies ..... noSupport enabled for:
Accessibility .......... yes
ALSA ................... yes
CUPS ................... yes
FontConfig ............. yes
Iconv .................. yes
ICU .................... yes
Image formats:
GIF .................. yes (in QtGui, using system library)
JPEG ................. yes (in QtGui, using bundled copy)
PNG .................. yes (in QtGui, using bundled copy)
Glib ................... yes
GStreamer .............. yes
GTK theme .............. yes
Large File ............. yes
libudev ................ no
Networking:
getaddrinfo .......... yes
getifaddrs ........... yes
IPv6 ifname .......... yes
OpenSSL .............. no
NIS .................... yes
OpenGL ................. desktop
OpenVG ................. no
PCRE ................... yes (bundled copy)
pkg-config ............. yes
PulseAudio ............. yes
QPA backends:
DirectFB ............. no
EGLFS ................ no
KMS .................. no
LinuxFB .............. yes
XCB .................. no
Session management ..... yes
SQL drivers:
DB2 .................. no
InterBase ............ no
MySQL ................ qt
OCI .................. no
ODBC ................. no
PostgreSQL ........... no
SQLite 2 ............. no
SQLite ............... yes (plugin, using bundled copy)
TDS .................. no
udev ................... no
xkbcommon .............. no
zlib ................... yes (bundled copy)
@It is building now, fingers crossed.