Je vais vous montrer comment utiliser les autotools avec Qt.
Je suppose que vous avez quelques bases avec automake et autoconf.
si vous êtes sous ubuntu, installez qt et autres comme ceci:
Code : | Sélectionner tout |
$ sudo apt install qt-default automake autoconf build-essential g++ pkg-config moc
Code : | Sélectionner tout |
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 | # -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.69]) AC_INIT([bouton], [1.0], [votre@e.mail]) AM_INIT_AUTOMAKE AC_CONFIG_SRCDIR([src/main.cpp]) AC_CONFIG_HEADERS([config.h]) # Checks for programs. AC_PROG_CXX #AM_CXXFLAGS=-I @top_srcdir@/include # Checks for libraries. # Checks for header files. # Checks for typedefs, structures, and compiler characteristics. # Checks for library functions. PKG_PROG_PKG_CONFIG # ... # Check for Qt libraries PKG_CHECK_MODULES(QT, [QtCore, QtGui], [], [AC_MSG_ERROR([Qt libraries are required.])]) # Retrieve Qt compilation and linker flags CPPFLAGS="`$PKG_CONFIG --cflags-only-I QtCore QtGui` $CPPFLAGS" LDFLAGS="`$PKG_CONFIG --libs-only-L QtCore QtGui` $LDFLAGS" LIBS="`$PKG_CONFIG --libs-only-l QtCore QtGui` $LIBS" AC_CHECK_PROGS(MOC, [moc-qt5 moc-qt4 moc]) AC_CHECK_PROGS(UIC, [uic-qt5 uic-qt4 uic]) AC_CHECK_PROGS(RCC, [rcc]) if test -z "$MOC" || test -z "$UIC" || test -z "$RCC"; then AC_MSG_ERROR([Qt utility programs moc, uic, and rcc are required.]) fi AC_CONFIG_FILES([Makefile src/Makefile]) AC_OUTPUT |
Code : | Sélectionner tout |
SUBDIRS = src
Code : | Sélectionner tout |
1 2 3 | bin_PROGRAMS = hello hello_CXXFLAGS=-I /usr/include/x86_64-linux-gnu/qt5 hello_SOURCES = main.cpp |
Code : | Sélectionner tout |
1 2 3 | bin_PROGRAMS = hello hello_CXXFLAGS=-I /usr/include/i386-linux-gnu/qt5 hello_SOURCES = main.cpp |
Code : | Sélectionner tout |
1 2 | $ touch AUTHORS ChangeLog NEWS README $ aclocal && autoheader && automake --gnu -c -a && autoconf |
pour vérifier si ça fonctionne:
Code : | Sélectionner tout |
1 2 3 | $ ./configure --prefix=/usr $ make $ make DESTDIR=/un/chemin install |
Code : | Sélectionner tout |
$ find /un/chemin
pour remettre le projet dans l'état initial:
Code : | Sélectionner tout |
$ make distclean
Code : | Sélectionner tout |
1 2 | $ ./configure $ make dist-bzip2 |
Code : | Sélectionner tout |
1 2 | $ ./configure $ make dist |