Linking problem: CreateMainWindow

  • Hi,

    I compiled IVT, configured it for use with QT4 and got the SimpleApp running. But if a GUI is involved (e.g. HoughCirclesDemo or FilterDemo), I get the error::

    undefined reference to `CreateApplicationHandler(int, char**)'
    undefined reference to `CreateMainWindow(int, int, int, int, char const*)'

    I have libqt4-dev and qt4-dev-tools installed. The object file is compiled, but not linked to a executable progam.

    Does someone have a hint?

    The complete message is:

    g++ -O3 main.o    -L../../lib/linux -lQtGui -lQtCore   -livt  -o filterdemo
    main.o: In function `CFilterDemo::Run()':
    main.cpp:(.text._ZN11CFilterDemo3RunEv[CFilterDemo::Run()]+0x15a): undefined reference to `CreateApplicationHandler(int, char**)'
    main.cpp:(.text._ZN11CFilterDemo3RunEv[CFilterDemo::Run()]+0x17d): undefined reference to `CreateMainWindow(int, int, int, int, char const*)'
    collect2: ld returned 1 exit status

    In the Makefile.base I set QT4 = 1 and QT_GUI=1, the others to 0 like written in the comments.

    Best regards,

  • Hm, strange, I think I see the problem: The files in gui/ are not compiled. Are they missing in the Makefile or did I miss an important point? Enabling the GUI is only done by setting these two flags (USE_QTGUI and USE_QT4), isn't it?

  • Pedram Azad
    Pedram Azad


    sorry, there was a typo in Makefile.base for the handling of the USE_QT4 flag. I fixed the problem and uploaded a new version 1.3.8-1, which also includes a fix for a bug that occurred when calling any of the Hough transform methods (see release notes).


  • Hey Pedram,

    thank you for the faste reply. I found another problem: "printf" in gui/Qt/QtMainWindow.cpp is not declared, an #include <stdio.h> helped for me. Now it seems to work, thank you!