Christophe Bousquet
2023-Aug-29 14:41 UTC
[R] Problems with installing R packages from source and running C++ in R, even on fresh R installation
Dear all, I am having issues with R that are giving me headaches since a few weeks. Basically, I cannot: (i) install packages from source (ii) run packages relying on C++ I really do not understand how and why this is happening [it was working perfectly fine before and I cannot determine when the problem started for sure], and the solution appears to be extremely difficult to find on the Internet. However, based on the number of StackOverflow questions on these issues, I assume they are affecting many persons. I already posted some questions related to these issues on StackOverflow [https://stackoverflow.com/questions/76979386/how-to-install-r-packages-from-source-on-fresh-r-installation] and on the RStan forum [https://discourse.mc-stan.org/t/cannot-compile-stan-program-from-r-package-brms/32294/22], but without success. This is kind of infuriating, because (i) I have no issues on my personal laptop and (ii) the same issues keep coming back on my work laptop, even after a full uninstallation of all R-related components [R, RStudio, Rtools, paths...]. Let's say that I managed to successfully uninstall all R-related components [maybe I miss something at this step?]. Then, I reinstall R4.3.1 [R-4.3.1-win.exe] and directly try to install a package from source. I then get the following warning message (which I actually take as an error message, because the whole command does not work): ```> install.packages("PKI", type = "source") Installing package into ?C:/Users/Christophe Bousquet/AppData/Local/R/win-library/4.3? (as ?lib? is unspecified) --- Please select a CRAN mirror for use in this session --- trying URL 'https://cloud.r-project.org/src/contrib/PKI_0.1-12.tar.gz' Content type 'application/x-gzip' length 85544 bytes (83 KB) downloaded 83 KB The downloaded source packages are in ?C:\Users\Christophe Bousquet\AppData\Local\Temp\Rtmpg1wwob\downloaded_packages? Warning message: In install.packages("PKI", type = "source") : installation of package ?PKI? had non-zero exit status ``` I guess this is normal, as at that moment Rtools 4.3 is not installed. So I install Rtools 4.3 [rtools43-5550-5548.exe], but I still get the same error message. However, Rtools 4.3 seems to be recognized by R: ```> library(pkgbuild) > rtools_path()[1] "C:\\rtools43/usr/bin"> has_rtools(debug = TRUE)Found in Rtools 4.3 installation folder [1] TRUE> check_rtools(debug = TRUE)Found in Rtools 4.3 installation folder [1] TRUE``` Then, if I try to use a package relying on C++, it fails as well. For instance: ```> library(Rcpp) > evalCpp("21 + 21")Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir, : Error 65535 occurred building shared library. WARNING: The tools required to build C++ code for R were not found. Please download and install the appropriate version of Rtools: http://cran.r-project.org/bin/windows/Rtools/ ``` I am particularly at loss with the warning, as R seems to find Rtools based on the diagnostic performed by pkgbuild (see above). However, when I run has_compiler() and check_compiler(), there seems to be some issues: ```> has_compiler(debug = TRUE)Trying to compile a simple C file Running "C:/PROGRA~1/R/R-43~1.1/bin/x64/Rcmd.exe" SHLIB foo.c [1] FALSE> check_compiler(debug = TRUE)Trying to compile a simple C file Running "C:/PROGRA~1/R/R-43~1.1/bin/x64/Rcmd.exe" SHLIB foo.cError: Failed to compile C code ``` Any help would be greatly appreciated :-) Here is the output of my sessionInfo(): ``` R version 4.3.1 (2023-06-16 ucrt) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19045) Matrix products: default locale: [1] LC_COLLATE=English_United Kingdom.utf8 LC_CTYPE=English_United Kingdom.utf8 LC_MONETARY=English_United Kingdom.utf8 [4] LC_NUMERIC=C LC_TIME=English_United Kingdom.utf8 time zone: Europe/Zurich tzcode source: internal attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] pkgbuild_1.4.2 loaded via a namespace (and not attached): [1] processx_3.8.2 compiler_4.3.1 R6_2.5.1 cli_3.6.1 prettyunits_1.1.1 tools_4.3.1 crayon_1.5.2 [8] callr_3.7.3 ps_1.7.5 ``` and the output of Sys.getlocale(): ``` Sys.getlocale() [1] "LC_COLLATE=English_United Kingdom.utf8;LC_CTYPE=English_United Kingdom.utf8;LC_MONETARY=English_United Kingdom.utf8;LC_NUMERIC=C;LC_TIME=English_United Kingdom.utf8"``` Many thanks in advance, Christophe Bousquet University of Konstanz Sent from [ProtonMail](https://protonmail.ch), encrypted email based in Switzerland. [[alternative HTML version deleted]]
Ivan Krylov
2023-Aug-30 08:37 UTC
[R] Problems with installing R packages from source and running C++ in R, even on fresh R installation
On Tue, 29 Aug 2023 14:41:40 +0000 Christophe Bousquet via R-help <r-help at r-project.org> wrote:> (ii) the same issues keep coming back on my work laptopIt may be worth asking the IT department at work, just in case there is a system to prevent unauthorised programs from running that interferes with Rtools. Are you comfortable using the command line? If you create a hello.c file with the following contents: #include <stdio.h> int main(void) { printf("Hello world!\n"); } ...and then place it into %USERPROFILE% (C:/Users/Christophe Bousquet), start "Rtools43 bash" from the Start menu and try the following command line: export PATH=/x86_64-w64-mingw32.static.posix/bin:$PATH gcc -o hello.exe hello.c ./hello.exe Does it say hello to you? -- Best regards, Ivan