Comme expliqué précédemment je ne peux pas compiler la partie script dont je n'ai de toute façon pas besoin et qui utilise des définitions invalides depuis C++11, donc :
1 2 3
| wget https://download.qt.io/archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz
cd qt-everywhere-opensource-src-4.8.7
./configure -no-script |
Cependant les choix de configuration ne sont pas seulement liés aux options de configure, ils dépendant également de ce que vous avez ou non installé par ailleurs, ainsi que le la version de votre OS. Dans mon cas je suis donc sur une Pi5 64b sous l'OS recommandé Debian Bookworm, et la configuration affichée lors de l'exécution de configure -no-script est :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
| Build .................. libs tools examples demos docs translations
Configuration .......... release largefile stl precompile_header minimal-config small-config medium-config large-config full-config qt3support accessibility opengl shared reduce_exports ipv6 clock-gettime clock-monotonic mremap getaddrinfo ipv6ifname getifaddrs inotify system-jpeg system-png png system-tiff system-freetype system-zlib iconv glib dbus x11sm xshape xsync xrender mitshm fontconfig xkb icu concurrent multimedia audio-backend svg release
Debug .................. no
Qt 3 compatibility ..... yes
QtDBus module .......... yes (run-time)
QtConcurrent code ...... yes
QtGui module ........... yes
QtScript module ........ no
QtScriptTools module ... no
QtXmlPatterns module ... no
Phonon module .......... no
Multimedia module ...... auto
SVG module ............. yes
WebKit module .......... no
Declarative module ..... no
Support for S60 ........ no
Symbian DEF files ...... no
STL support ............ yes
PCH support ............ yes
MMX/3DNOW/SSE/SSE2/SSE3. no/no/no/no/no
SSSE3/SSE4.1/SSE4.2..... no/no/no
AVX..................... no
Graphics System ........ default
IPv6 support ........... yes
IPv6 ifname support .... yes
getaddrinfo support .... yes
getifaddrs support ..... yes
Accessibility .......... yes
NIS support ............ no
CUPS support ........... no
Iconv support .......... yes
Glib support ........... yes
GStreamer support ...... no
PulseAudio support ..... no
Large File support ..... yes
GIF support ............ plugin
TIFF support ........... plugin (system)
JPEG support ........... plugin (system)
PNG support ............ yes (system)
MNG support ............ plugin (qt)
zlib support ........... system
Session management ..... yes
OpenGL support ......... yes (Desktop OpenGL)
OpenVG support ......... no
NAS sound support ...... no
XShape support ......... yes
XVideo support ......... no
XSync support .......... yes
Xinerama support ....... runtime
Xcursor support ........ runtime
Xfixes support ......... runtime
Xrandr support ......... runtime
Xrender support ........ yes
Xi support ............. runtime
MIT-SHM support ........ yes
FontConfig support ..... yes
XKB Support ............ yes
immodule support ....... yes
GTK theme support ...... no
SQLite support ......... plugin (qt)
OpenSSL support ........ no
Alsa support ........... no
ICD support ............ no
libICU support ......... yes
Use system proxies ..... no |
Une fois l'exécution de configure terminée j'ai fait les changements suivants liés aux évolutions de gcc qui n'est plus ce qu'il était du temps de Qt 4.8.7 :
Dans qt-everywhere-opensource-src-4.8.7/src/dbus/Makefile et qt-everywhere-opensource-src-4.8.7/src/plugins/accessible/widgets/Makefile j'ajoute l'option -fpermissive à la définition de CXXFLAGS
Dans qt-everywhere-opensource-src-4.8.7/src/plugins/accessible/widgets/itemviews.cpp je remplace la ligne 396 qui était
view()->selectionModel()->select(index, QItemSelectionModel::Columns & QItemSelectionModel::Deselect);
par
view()->selectionModel()->select(index, static_cast<QItemSelectionModel::SelectionFlags>(QItemSelectionModel::Columns & QItemSelectionModel::Deselect));
Dans qt-everywhere-opensource-src-4.8.7/tools/linguist/linguist/messagemodel.cpp ligne 186 je remplace 0 par ((MessageItem*)0) afin d'obtenir
if (c->findMessage(m->text(), m->comment()) >= ((MessageItem*)0))
Dans qt-everywhere-opensource-src-4.8.7/src/corelib/global/qglobal.h ligne 2500 je remplace break par continue afin d'obtenir
for (variable = *_container_.i;; __extension__ ({--_container_.brk; continue;}))
Maintenant je peux compiler puis installer :
1 2
| make -j3
sudo make install |
et j'ai Qt 4.8.7 installé sous /usr/local/Trolltech/Qt-4.8.7 sans risque d’interaction avec une possible installation de Qt 5 ou 6.
Pour compiler BoUML j'ai juste à utiliser /usr/local/Trolltech/Qt-4.8.7/bin/qmake pour produire les Makefile qui utilisent QT 4.8.7 
Je peux ainsi utiliser BoUML sur ma Pi5 64b comme si de rien n'était.
Partager