How to build Qt project with auto tools



  • I have a project built from autotool and I would like to add an ui for it. I would like to combine Qt's stuff into my original project. I make a new Qt Designer Form Class with default setting, mainwindow.cpp, mainwindow.h and mainwindow.ui, but I don't know how to build it. Any one knows how to do it?

    File sturcture
    root/mainwindow.cpp
    root/mainwindow.h
    root/mainwindow.ui

    I have tried to add the following into configure.ac

    # Check for Qt libraries
    PKG_CHECK_MODULES(QT, [QtCore, QtGui, QtNetwork], [], [AC_MSG_ERROR([Qt libraries are required.])])
    
    # Retrieve Qt compilation and linker flags
    CPPFLAGS="`$PKG_CONFIG --cflags-only-I QtCore QtGui QtNetwork` $CPPFLAGS"
    LDFLAGS="`$PKG_CONFIG --libs-only-L QtCore QtGui QtNetwork` $LDFLAGS"
    LIBS="`$PKG_CONFIG --libs-only-l QtCore QtGui QtNetwork` $LIBS"
    
    if ! `$PKG_CONFIG --atleast-version=4.6.0 QtCore`; then
       AC_MSG_ERROR([Qt >= 4.6.0 is required.])
    fi
    
    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
    

    I added the following into Makefile.am

    # qt project stuff
    moc_%.cpp: %.h
    	@MOC@ -o$@ $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(MOC_CPPFLAGS) $<
    
    ui_%.h: %.ui
    	@UIC@ -o $@ $<
    
    qrc_%.cpp: %.qrc
    	@RCC@ -o $@ $<
    

    But I get error

    undefined reference to `vtable for MainWindow'
    

    I found that people said those moc_ files are missing but I don't know how to fix it.

    Anyway, can anyone teach me how to build a Qt project with autotool?


  • Moderators

    Hi! Qt Creator has a plugin for working with Autotools (http://doc.qt.io/qtcreator/creator-projects-autotools.html). Never used this myself but maybe it does what you want.


Log in to reply
 

Looks like your connection to Qt Forum was lost, please wait while we try to reconnect.