[Rcpp-devel] Compilation errors creating qtdensity example (on Mac OS X)

Dirk Eddelbuettel edd at debian.org
Sat Apr 27 16:13:30 CEST 2013

On 27 April 2013 at 08:29, Paul Johnson wrote:
| I'm getting numerous errors when I try to create the RInside qtdensity example.
| This is my first experience with Qt so I suspect there's some simple
| thing I'm not doing right.
| The first two fatal compilation errors I get are:
| ---
| qtdensity.cpp:37:31: error: allocation of incomplete type 'QLineEdit'
|     QLineEdit *cmdEntry = new QLineEdit(m_cmd);
|                               ^~~~~~~~~
| /usr/local/Qt-5.0.2/include/QtWidgets/qabstractspinbox.h:55:7: note: forward
|       declaration of 'QLineEdit'
| class QLineEdit;
|       ^
| qtdensity.cpp:38:14: error: no matching member function for call to 'connect'
|     QObject::connect(cmdEntry,  SIGNAL(textEdited(QString)), this,...
|     ~~~~~~~~~^~~~~~~
| /usr/local/Qt-5.0.2/include/QtCore/qobject.h:199:36: note: candidate function
|       not viable: cannot convert argument of incomplete type 'QLineEdit *' to
|       'const QObject *'
|     static QMetaObject::Connection connect(const QObject *sender, const...
| ---
| The fatal errors occur when processing Qt header files, so perhaps I
| have a problem with my Qt installation.

Very likely. 

Here is what it looks like on my system.  Not a line of output from the
compiler even under -Wall:

edd at max:~/svn/rinside/pkg/inst/examples/qt$ qmake && make
g++ -c -m64 -pipe -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -o qtdensity.o qtdensity.cpp
g++ -c -m64 -pipe -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -o main.o main.cpp
/usr/bin/moc-qt4 -DQT_WEBKIT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. qtdensity.h -o moc_qtdensity.cpp
g++ -c -m64 -pipe -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/include -I/usr/local/lib/R/site-library/RInside/include -O2 -Wall -W -D_REENTRANT -DQT_WEBKIT -DQT_NO_DEBUG -DQT_SVG_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/linux-g++-64 -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtSvg -I/usr/include/qt4 -I. -o moc_qtdensity.o moc_qtdensity.cpp
g++ -m64 -Wl,-O1 -o qtdensity qtdensity.o main.o moc_qtdensity.o    -L/usr/lib/x86_64-linux-gnu -L/usr/lib/R/lib -lR -lblas -llapack -L/usr/local/lib/R/site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/site-library/RInside/lib -L/usr/local/lib/R/site-library/Rcpp/lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -lQtSvg -lQtGui -lQtCore -lpthread 
edd at max:~/svn/rinside/pkg/inst/examples/qt$ 

On a less-standard system, you may need to do more legwork yourself.  The
setup is consistent with Qt practice, tested and maintained.  And has worked
just fine for a number of Qt 4.* releases.


Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com

More information about the Rcpp-devel mailing list