[Rcpp-devel] problems with rInside in Ubuntu

Walter Mascarenhas walter.mascarenhas at gmail.com
Sat Mar 30 14:19:28 CET 2013


Dirk,

   In a simpler project, I noticed the following:

1) When I use the static library RInside/lib/libRInside.a I get the link
error above, i,e.
missing Rcpp::Language::update().However, if I replace RInside.a by the
RInside.so
the link problem disappears.

2) There isn't a method called update in the version of the class Language
in
/usr/local/lib/R/site-library/Rcpp/include/Rcpp/Language.h

 These observations lead to the natural questions:

1) are you sure the distributed LibRInside.a was compiled with the latest
version of the class Language?

2) When you say that everything works fine there, did you consider linking
against each one of the THREE version of libRInside:  /lib/libRInside.a,
/lib/libRInside.so and
/libs/libRInside.o?

              walter.



On Fri, Mar 29, 2013 at 10:37 PM, Dirk Eddelbuettel <edd at debian.org> wrote:

>
> On 29 March 2013 at 22:13, Walter Mascarenhas wrote:
> | Dirk,
> |
> |   SInce I wrote you this afternoon, I upgraded to R 2.15.3 and got
> version
> | 0.10.3 of rcpp and
> | 0.2.10 of Rinside. I am using ubuntu 12.04 LTS, with g++4.7.2 and Qt
> 5.0.1 in
> | Qt creator 2.6.2
> | (the first few lines of the makefile generated by qmake are at the end
> of this
> | message)
>
> It is probably Qt 5 that makes the difference.
>
> Why did you pick it?  Ubuntu 12.04 and 12.10 comes with perfectly fine
> versions of Qt 4.7.*
>
> |   Now rinsides's qtdensity example does not work anymore, for two
> reasons:
> | 1) The file main.cpp does not compile. It is easy to fix this by addng
> | these four lines to main.cpp:
> |
> | #include <QLineEdit>
> | #include <QGroupBox>
> | #include <QRadioButton>
> | #include <QButtonGroup>
> |
> | I guess these files are included via <qtGui> in your machine.
>
> Yes, works here out of the box.
>
> | 2) There is a link problem:
> |
> | /usr/local/lib/R/site-library/RInside/lib/libRInside.so:-1: error:
> undefined
> | reference to `Rcpp::Language::update()'
>
> Dito. That one is weirder.
>
> If we both use Rcpp 0.10.3, why do you have this and I don't?
>
> Do the other examples (in the neighbouring directories) build?
>
> | which I do not now how to solve. What should I do?
>
> Debug it. It broke, and you get to keep the pieces.
>
> I support software I give away for free. I test to the best of my ability
> and
> resources, but keep in mind that I do not have the manpower or resource to
> test on every conceivable combination of related software releases.
>
> I really do think that you safest bet may to take the libqt* versions from
> your distro.
>
> | Once you tell me how to fix this I will build an example with qt in
> which I
> | use Rcpp to reproduce the results in a finance paper which were obtained
> | originally in matlab. I believe it will be a neat example of the use of
> Rcpp
> | (and I want to look very carefully at this article anyway)
> |
> | Here are the first lines of the makefile:
> |
> | ##############################
> | ###############################################
> | # Makefile for building: qtdensity
> | # Generated by qmake (3.0) (Qt 5.0.1) on: Fri Mar 29 21:33:20 2013
> | # Project:  /usr/local/lib/R/site-library/RInside/examples/qt/
> qtdensity.pro
> | # Template: app
> | # Command: /home/walter/qt.5.0.1/5.0.1/gcc_64/bin/qmake -spec
> linux-g++-64
> | CONFIG+=debug CONFIG+=declarative_debug CONFIG+=qml_debug
> QMAKE_CXX=g++-4.7
> | QMAKE_CXXFLAGS+=-std=c++11 -o Makefile
> /usr/local/lib/R/site-library/RInside/
> | examples/qt/qtdensity.pro
> |
> #############################################################################
> |
> | MAKEFILE      = Makefile
> |
> | ####### Compiler, tools and options
> |
> | CC            = gcc
> | CXX           = g++-4.7
> | DEFINES       = -DQT_QML_DEBUG -DQT_DECLARATIVE_DEBUG -DQT_SVG_LIB
> | -DQT_WIDGETS_LIB -DQT_GUI_LIB -DQT_CORE_LIB
> | CFLAGS        = -m64 -pipe -g -Wall -W -D_REENTRANT -fPIE $(DEFINES)
> | CXXFLAGS      = -m64 -pipe -std=c++11 -I/usr/share/R/include
> -I/usr/local/
> | lib/R/site-library/Rcpp/include
> -I/usr/local/lib/R/site-library/RInside/include
> | -g -Wall -W -D_REENTRANT -fPIE $(DEFINES)
> | INCPATH       = -I../../../../qt.5.0.1/5.0.1/gcc_64/mkspecs/linux-g++-64
> | -I/usr/local/lib/R/site-library/RInside/examples/qt
> -I../../../../qt.5.0.1/
> | 5.0.1/gcc_64/include -I../../../../qt.5.0.1/5.0.1/gcc_64/include/QtSvg
> -I../..
> | /../../qt.5.0.1/5.0.1/gcc_64/include/QtWidgets
> -I../../../../qt.5.0.1/5.0.1/
> | gcc_64/include/QtGui -I../../../../qt.5.0.1/5.0.1/gcc_64/include/QtCore
> -I. -I.
> | LINK          = g++
> | LFLAGS        = -m64 -Wl,-rpath,/home/walter/qt.5.0.1/5.0.1/gcc_64
> | -Wl,-rpath,/home/walter/qt.5.0.1/5.0.1/gcc_64/lib
> | LIBS          = $(SUBLIBS) -L/usr/X11R6/lib64 -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
> | -L/home/walter/qt.5.0.1/5.0.1/gcc_64/lib -lQt5Svg -lQt5Widgets -lQt5Gui
> | -lQt5Core -lGL -lpthread
> | AR            = ar cqs
> | RANLIB        =
> | QMAKE         = /home/walter/qt.5.0.1/5.0.1/gcc_64/bin/qmake
> | TAR           = tar -cf
> | COMPRESS      = gzip -9f
> | COPY          = cp -f
> | SED           = sed
> | COPY_FILE     = cp -f
> | COPY_DIR      = cp -f -R
> | STRIP         = strip
> | INSTALL_FILE  = install -m 644 -p
> | INSTALL_DIR   = $(COPY_DIR)
> | INSTALL_PROGRAM = install -m 755 -p
> | DEL_FILE      = rm -f
> | SYMLINK       = ln -f -s
> | DEL_DIR       = rmdir
> | MOVE          = mv -f
> | CHK_DIR_EXISTS= test -d
> | MKDIR         = mkdir -p
> | [cleardot]
>
> It's all reasonable, and the only clear difference I see it qt5.0. My
> releases
> assume qt4.* and currently test under 4.7.
>
> Dirk
>
> --
> Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20130330/66396903/attachment.html>


More information about the Rcpp-devel mailing list