Thursday, December 29, 2011

A solution to "error: qobject.h: No such file or directory" in compiling a Geant4 application

If you want to use Qt GUI in your Geant4 application, you should put the qt related codes in your application.
When you make a Geant4.9.5 application using the traditional "make" method, not cmake, probably you will meet this error message:

error: qobject.h: No such file or directory

Here I will give two solutions to it.

First,

add below lines in your GNUmakefile:
INCPATH := -I/usr/include/qt4/Qt -I/usr/include/qt4
CPPFLAGS+= $(INCPATH)

to tell the compiler where the qt headers are.
But this is not a good method, because you have to add them for every application.

Second,
add below lines in your .bashrc file. (for .cshrc, it's similar, but not exactly the same)

export QTMOC="/usr/bin/moc-qt4"
export QTFLAGS="-I/usr/include/qt4 -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL"
export QTLIBS="-L/usr/lib -lQtCore -lQtGui"
export GLQTLIBS="-L/usr/lib -lQtCore -lQtGui -lQtOpenGL"



After setting this, you will not see the error message when using qt gui in your application.

1 comment:

  1. Thank you very much, I have been staring at my screen for days trying to figure this out!

    ReplyDelete

happy time