Le 5 oct. 2014 ? 13:14, Gabor Grothendieck <ggrothendieck at gmail.com> a ?crit :
On Sun, Oct 5, 2014 at 6:51 AM, Uwe Ligges
<ligges at statistik.tu-dortmund.de> wrote:
On 05.10.2014 12:20, Jeroen Ooms wrote:
I started working on some R bindings for mongo-c-driver [1]. The C
library compiles fine on Ubuntu Trusty (gcc 4.8.2) and osx (clang),
however on my windows machine (gcc 4.6.3 from Rtools 3.1) it fails
with: 'INIT_ONCE_STATIC_INIT' undeclared. Google suggests that this
might be a problem in older versions of mingw-w64. So I grabbed a copy
of mingw-w64 version 4.8.3 and indeed, here the library compiles
without errors.
Now I am unsure how to make mingw 4.8.3 work with Rtools. I extracted
the contents of [2] into "C:\RBuildTools\3.1\gcc-4.8.3\" and my
package Makevars contains
CC = "c:/RBuildTools/3.1/gcc-4.8.3/bin/gcc"
However it seems like R still uses the old gcc 4.6.3 for R CMD
INSTALL. What am I doing wrong? Is there a recommended setup for
building packages on Windows using a Rtools but with another compiler?
In addition: will I be able to publish this package to CRAN, or do I
have to wait for Rtools to get updated with a more recent gcc?
Currently only 4.6.3 is supported and that is the one used to build binary
packages on CRAN. Hence you need to wait until it is updated.
Best,
Uwe Ligges
Are there any plans for this? gcc is already up to 4.9.1 and I am
sure a lot of people would like to see the latest version available as
part of Rtools.
+1. Please. I?d like a newer gcc as part of Rtools too. My reason for it is that it would bring actual C++11, rather than unfinished C++0x as gcc 4.6.3 currently ships. That would allow more adoption of the newer C++ standard for packages [*].
Furthermore, a current version of gcc will also give a good support for C++14, the current C++ standard.
I said it in the past, I don?t have the skills to make this happen myself but I would consider funding someone?s time (within reason) and offer mine for testing it.
Romain
*: currently Rcpp11, the best way to connect R and C++11, has to compromise on what C++11 means so that it works on windows. This is bad. The compromise is minimal, but still.