[Rcpp-devel] Help compiling qtdensity example on windows
edd at debian.org
Mon Nov 26 18:36:06 CET 2012
On 26 November 2012 at 19:11, Theodore Lytras wrote:
| Hello all,
| As a first step in porting my beautifully functional (and ever in development)
| Qt / RInside application from Debian to Windows, I have tried to compile the
| qtdensity example on Windows.
| However, I seem to be stuck with these "undefined reference" errors (long text
| (.text+0x8be): undefined reference to `Rcpp::Function::Function(std::string
| Here's the whole story so far:
| My box is running Windows 7, I have installed R 2.15.2 binary for Windows from
| CRAN, and the full Qt SDK which includes Qt 4.8.1, Qt Creator and MinGW 4.4.0.
| I have also installed Rtools, but *deleted* the MinGW version that comes with
| Rtools, so that MinGW 4.4.0 from Qt SDK is the only compiler present in the
I had this working years ago at a prior workplace (and would not have
published / pushed it otherwise).
I think I did it the other way around: rebuild Qt with the mingw from
Rtools. Not entirely sure.
| R is installed under "C:\R" and not under "C:\Program Files". Environment
| variable R_HOME is set to "C:\R\R-2.15.2", and PATH includes the MinGW path
| and the "C:\R\R-2.15.2\bin" path.
| Rcpp and RInside seem to have been installed OK under "C:\R\R-2.15.2\library",
| downloaded from CRAN and compiled from source, with the function:
| install.packages(c("Rcpp","RInside"), type="source)
| The only modification I have made to the qtdensity.pro file is on lines
| 31,32,41 and 42, where I have replaced the single quotes in the calls to
| Rscript with double quotes:
| RCPPINCL = $$system($$R_HOME/bin/Rscript -e \"Rcpp:::CxxFlags\(\)\")
| RCPPLIBS = $$system($$R_HOME/bin/Rscript -e \"Rcpp:::LdFlags\(\)\")
| RINSIDEINCL = $$system($$R_HOME/bin/Rscript -e \"RInside:::CxxFlags\(\)\")
| RINSIDELIBS = $$system($$R_HOME/bin/Rscript -e \"RInside:::LdFlags\(\)\")
| as I have found that Rcpp:::LdFlags() and the rest were not evaluated when
| delimited by single quotes.
| The standard RInside examples compile and run without problem. For the
| qtdensity example though, all object files are getting compiled, but there
| seems to be a problem with linking.
| I saw an earlier rcpp-devel post by Dirk, suggesting that one should use the
| same MinGW compiler that was used to build Qt. The version of Qt shipped with
| the Qt SDK is indeed supposed to be built with the shipped compiler, so there
| *should* be no problem.
| Nonetheless, I downloaded latest Qt source (http://releases.qt-
| project.org/qt4/source/qt-everywhere-opensource-src-4.8.3.zip) and built it
| again on Windows with the SDK's MinGW compiler (again, the only compiler
| present on the system). The configure options were: -platform win32-g++ -
| exceptions -rtti -no-phonon -no-phonon-backend -debug-and-release -opensource
| -shared -no-qt3support -nomake examples -nomake demos
| I adjusted the QTMAKESPEC and PATH enviroment variables to use this version,
| and selected it for the project on Qt Creator. Compilation of qtdensity is OK,
| and seems to use this custom-build version of Qt.
| However, I keep getting the same linker errors. So I am stuck, and out of
| Has anyone managed to run the qtdensity example on windows recently? If so,
| would you please describe what you did, i.e. which exact setup worked (Win
| version, Qt version, MinGW, etc) ?
Yes I have, but not recently and I no longer have access to the system on
which I did it.
You could try rebuild Qt with the R toolchain compiler. Or you could forget
it and switch to Rserve and tcp/ip connections to avoid the linker issue.
| Any help is greatly appreciated!
| Theodore Lytras
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel