Hi. I am Debartha Paul, a Master's student in Statistics at Presidency University, Kolkata, India. I was trying to build R from scratch using RTools as described in https://contributor.r-project.org/rdevguide/ and https://cran.r-project.org/bin/windows/base/howto-R-devel.html but when I run `make all recommended`, I get an error message as follows: ``` grep.c:75:10: fatal error: pcre2.h: No such file or directory 75 | # include<pcre2.h> | ^~~~~~~~~ compilation terminated. make[4]: *** [../gnuwin32/MkRules:155: grep.o] Error 1 make[3]: *** [Makefile:129: rlibs] Error 2 make[2]: *** [Makefile:194: ../../bin/x64/R.dll] Error 2 make[1]: *** [Makefile:114: rbuild] Error 2 make: *** [Makefile:17: all] Error 2 ``` I ran `pacman -Q` inside my `MSYS2 MSYS` bash but discovered that `pcre2` exists. However, upon running `pacman -Q` from RTools bash, I found that it is not being found, and only a subset of the original file list is available now. But the surprising fact (to me at least) is that when I open my RTools folder, where its installed, I did find the`pcre2` header file inside one of the folders named `x86_x64-w64-mingw32.static.posix`. More surprisingly, none of the header files, listed inside this folder, is being listed in `pacman -Q` when I run it from inside `RTools` bash. I dived deeper and found that the folder that `pacman -Q` is returning from lies in `var`: another folder inside RTools, separate from `x86_x64-w64-mingw32.static.posix`. I brought this issue up in the recently concluded Office Hours of the R-Contributors Slack, but unfortunately, I couldn't get any satisfactory solution, nor a reason, on why this is happening. I tried `pacman -Sy pcre2` from RTools bash, and the result was that I can now see `pcre2` in the subset that I mentioned earlier, but still, the problem persists. Needless to say that I even updated both my MSYS bash packages and RTools bash packages using `pacman -Syuu` from both. Finally, I was using `rtools43-5493-5475.exe` and fearing that it might be the cause, I uninstalled and installed the latest version(`rtools43-5550-5548.exe`), but it didn't do anything to improve my output. At this point, I am confused as to why this is happening, and I would be glad if anyone guides me towards a solution to this problem. I am using a Windows 11 machine and would be happy to give further information if the need arises. With thanks and regards Debartha Paul Masters Student (1st Year) Department of Statistics Presidency University Kolkata
pcre2.h not found error while building R in windows
2 messages · Debartha Paul, Tomas Kalibera
1 day later
On 4/15/23 19:00, Debartha Paul wrote:
Hi. I am Debartha Paul, a Master's student in Statistics at Presidency University, Kolkata, India. I was trying to build R from scratch using RTools as described in https://contributor.r-project.org/rdevguide/ and https://cran.r-project.org/bin/windows/base/howto-R-devel.html but when I run `make all recommended`, I get an error message as follows: ``` grep.c:75:10: fatal error: pcre2.h: No such file or directory 75 | # include<pcre2.h> | ^~~~~~~~~ compilation terminated. make[4]: *** [../gnuwin32/MkRules:155: grep.o] Error 1 make[3]: *** [Makefile:129: rlibs] Error 2 make[2]: *** [Makefile:194: ../../bin/x64/R.dll] Error 2 make[1]: *** [Makefile:114: rbuild] Error 2 make: *** [Makefile:17: all] Error 2 ``` I ran `pacman -Q` inside my `MSYS2 MSYS` bash but discovered that `pcre2` exists. However, upon running `pacman -Q` from RTools bash, I found that it is not being found, and only a subset of the original file list is available now. But the surprising fact (to me at least) is that when I open my RTools folder, where its installed, I did find the`pcre2` header file inside one of the folders named `x86_x64-w64-mingw32.static.posix`. More surprisingly, none of the header files, listed inside this folder, is being listed in `pacman -Q` when I run it from inside `RTools` bash. I dived deeper and found that the folder that `pacman -Q` is returning from lies in `var`: another folder inside RTools, separate from `x86_x64-w64-mingw32.static.posix`. I brought this issue up in the recently concluded Office Hours of the R-Contributors Slack, but unfortunately, I couldn't get any satisfactory solution, nor a reason, on why this is happening. I tried `pacman -Sy pcre2` from RTools bash, and the result was that I can now see `pcre2` in the subset that I mentioned earlier, but still, the problem persists. Needless to say that I even updated both my MSYS bash packages and RTools bash packages using `pacman -Syuu` from both. Finally, I was using `rtools43-5493-5475.exe` and fearing that it might be the cause, I uninstalled and installed the latest version(`rtools43-5550-5548.exe`), but it didn't do anything to improve my output. At this point, I am confused as to why this is happening, and I would be glad if anyone guides me towards a solution to this problem. I am using a Windows 11 machine and would be happy to give further information if the need arises.
The official documentation for building R on Windows using Rtools can be found from the Rtools download page (https://cran.r-project.org/bin/windows/Rtools/) and is for a specific version of R. I would recommend you read and follow that and in case of any questions, you can ask on the R-package-devel mailing list (or this one). If you are using R-devel, at the time of this writing, the Rtools version to use is Rtools43, the download page is https://cran.r-project.org/bin/windows/Rtools/rtools43/rtools.html and the linked documentation page is https://cran.r-project.org/bin/windows/base/howto-R-devel.html (below referred to as howto document) If you are using R 4.2.x, you should use Rtools42 and the documentation link is https://cran.r-project.org/bin/windows/base/howto-R-4.2.html From your message I assume you are using R-devel. It is important to use the right version of Rtools for the version of R and read the right documentation, but the pcre2.h issue you are running into is probably not specific to the version. Rtools43 consists of these parts: 1. msys2 2. toolchain+libraries built using MXE 3. some extra tools You can use Msys2 package manager for (1) from the above, so only for build tools. Normally you don't need to install any Msys2 packages to build R packages or R itself, all necessary Msys2 packages are already pre-installed. But you can use it to update the (1) part (see the howto document). There may be pcre2 installed here, but it is _not_ the pcre2 library that might/could be used when build R and R packages. This is only for tools such as "make" or "tar" which you run from the command line. Even though Msys2 also offers some compiler toolchains and headers and libraries, they are not static and they are not used with R and R packages. I would recommend against installing any toolchain/libraries for any of the Msys2 subsystems inside Rtools - it is too easy to accidentally mix those with (2). (2) contains the compiler toolchain, headers and libraries and this is what you can see under x86_x64-w64-mingw32.static.posix. So, you would find pcre2.h there, as well as the library, and it will be found by the compilers stored also there, if you follow the howto document. You can find the header files simply using "find" etc, but not using pacman, because pacman is part of (1). (3) you can ignore for this problem, but there are some tools outside x86_x64-w64-mingw32.static.posix which are not from Msys2, documented also in the howto document From what you are writing, I am not sure why pcre2.h is not found. Please make sure you have not installed any Msys2 compiler or libraries inside Rtools43 - the right ones for R are already there (e.g., if you installed gcc from Msys2 and ran that one, it would not find pcre2.h, and you could easily check using "which gcc"). Please follow the howto document exactly and if you run into the problem again, please describe exactly the steps you have taken to install Rtools43 and then inside Rtools43. Please make sure you have not set any PATH or other important environment variables in Windows other than described in the howto document (old settings could e.g. lead to running the wrong compiler, which would not find the header file). Best Tomas
With thanks and regards Debartha Paul Masters Student (1st Year) Department of Statistics Presidency University Kolkata [[alternative HTML version deleted]]
_______________________________________________ R-SIG-windows mailing list R-SIG-windows at r-project.org https://stat.ethz.ch/mailman/listinfo/r-sig-windows