[Rcpp-devel] Cannot run rcpp due to missing include file(s)

Simon Urbanek simon.urbanek at R-project.org
Mon May 4 01:20:20 CEST 2020


Paul,

as Kevin pointed out you have a big mess in /usr/local - I'd recommend renaming /usr/local/include and /usr//local/lib -- then you shouldn't need to set any custom flags at all (at least in R 4.0.0).

Cheers,
Simon


> On 4/05/2020, at 9:34 AM, Paul Fishwick <metaphorz at gmail.com> wrote:
> 
> @Kevin: This worked great. Thanks. I deleted the line in ~/.R/Makevars and inserted the line
> defining CPPFLAGS as you suggested. Rcpp now works in R! I have not yet tried to compile
> a package from source in R but I am guessing (or hoping) that should now work.
> 
> In the mean time, I will read up on the R.framework.......Makeconf file to understand it.
> 
> I suppose since /usr/local/include is the offending set of headers, I could just delete
> everything from that directory too (after making a backup). I am not doing any other
> development work except for R/Rcpp, so perhaps it will not make a difference.
> 
> However, since your suggested line does work, I'll leave it at this, and see if I can
> build up my knowledge on conflicting include files.
> 
> Thanks again!
> 
> -paul
> 
> 
> 
> 
> On 5/3/20, 2:51 PM, "Kevin Ushey" <kevinushey at gmail.com> wrote:
> 
>> In file included from /usr/local/include/math.h:8:
> 
>    The problem here is you have a bunch of headers in /usr/local/include
>    that are shadowing / overriding the "normal" system header files;
>    /usr/local/include/math.h being one of these (but I imagine there's
>    more).
> 
>    To work around this, you'll have to explicitly remove the
>    -I/usr/local/include bit that's part of CPPFLAGS (normally set by
>    default by an R installation), or clean up your /usr/local/include
>    directory. For example, in ~/.R/Makevars, you could set:
> 
>        CPPFLAGS = -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
> 
>    See the Makeconf file at:
> 
>        /Library/Frameworks/R.framework/Resources/etc/Makeconf
> 
>    for more information on where the default values for compilation flags
>    come from.
> 
>    Note that setting the above will probably break compilation for other
>    packages that depend on headers being located in /usr/local/include;
>    if that is indeed the case your main recourse would be to clean up
>    /usr/local/include, or find a way to explicitly include your system
>    headers before /usr/local/include.
> 
>    As an aside, the Makevars variables prefixed with PKG_ are normally
>    reserved for use by package authors (in their own src/Makevars); you
>    normally shouldn't try to set or override those. See in R-exts:
> 
>    https://cran.r-project.org/doc/manuals/r-release/R-exts.html#Using-Makevars
> 
>    for more details.
> 
>    Best,
>    Kevin
> 
>    On Sun, May 3, 2020 at 10:17 AM Paul Fishwick <metaphorz at gmail.com> wrote:
>> 
>> It was a good suggestion. I went back to installing R 4.0 as you suggested. In Rstudio, which I think
>> 
>> uses whatever R happens to be currently installed, I get into
>> 
>> a similar rcpp issue whenever I say “y” to compiling packages from source. There seems
>> 
>> to be consistent disconnect of R finding certain files when compilation with
>> 
>> clang is required.
>> 
>> 
>> 
>> …………
>> 
>> 
>> 
>> clang -mmacosx-version-min=10.13 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include  -I/usr/local/include   -fPIC  -Wall -g -O2  -c capture.c -o capture.o
>> 
>> In file included from capture.c:1:
>> 
>> In file included from /Library/Frameworks/R.framework/Resources/include/Rinternals.h:44:
>> 
>> In file included from /Library/Frameworks/R.framework/Resources/include/R_ext/Arith.h:41:
>> 
>> In file included from /usr/local/include/math.h:8:
>> 
>> In file included from /usr/local/include/features.h:10:
>> 
>> /usr/local/include/forwards.h:10:10: fatal error: 'config.h' file not found
>> 
>> #include "config.h"
>> 
>>         ^~~~~~~~~~
>> 
>> 1 error generated.
>> 
>> make: *** [capture.o] Error 1
>> 
>> ERROR: compilation failed for package ‘rlang’
>> 
>> 
>> 
>> ………………….
>> 
>> 
>> 
>> From: Carl Ganz <carlganz at gmail.com>
>> Date: Sunday, May 3, 2020 at 12:04 PM
>> To: Paul Fishwick <metaphorz at gmail.com>
>> Cc: <rcpp-devel at lists.r-forge.r-project.org>
>> Subject: Re: [Rcpp-devel] Cannot run rcpp due to missing include file(s)
>> 
>> 
>> 
>> This is probably beyond my understanding at this point, but the solution I offered worked for me with R 4.0 and it looks like this example is R 3.6
>> 
>> 
>> 
>> I vaguely remember some issues with interaction between older R version and newer Xcode 11.4.1 so moving to R 4 might help
>> 
>> 
>> 
>> On Sun, May 3, 2020 at 9:25 AM Paul Fishwick <metaphorz at gmail.com> wrote:
>> 
>> Carl
>> 
>> First, thank you for this quick tip! I had no ~/.R directory and Makevars didn’t exist when I searched
>> 
>> for it in Finder. So, I made the directdory ~/.R and then added a new file “Makevars” to that directory.
>> 
>> I edited this file to add your PKG_CPPFLAGS:
>> 
>> 
>> 
>> (base) <hostname>-5:.R paul$ more Makevars
>> 
>> PKG_CPPFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include
>> 
>> 
>> 
>> Now I get another sequence of compiler errors. I’ll include only the first several lines:
>> 
>> 
>> 
>> ……….
>> 
>> 
>> 
>> In file included from fileb6e52d3a23c3.cpp:1:
>> 
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp.h:27:
>> 
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/RcppCommon.h:29:
>> 
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/r/headers.h:67:
>> 
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/platform/compiler.h:100:
>> 
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:317:9: error: no member named 'signbit' in the global namespace
>> 
>> using ::signbit;
>> 
>>      ~~^
>> 
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:318:9: error: no member named 'fpclassify' in the global namespace
>> 
>> using ::fpclassify;
>> 
>>      ~~^
>> 
>> /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:319:9: error: no member named 'isfinite' in the global namespace; did you mean 'finite'?
>> 
>> using ::isfinite;
>> 
>>      ~~^
>> 
>> /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/math.h:749:12: note: 'finite' declared here
>> 
>> extern int finite(double)
>> 
>>           ^
>> 
>> 
>> 
>> From: Carl Ganz <carlganz at gmail.com>
>> Date: Sunday, May 3, 2020 at 11:02 AM
>> To: Paul Fishwick <metaphorz at gmail.com>
>> Cc: <rcpp-devel at lists.r-forge.r-project.org>
>> Subject: Re: [Rcpp-devel] Cannot run rcpp due to missing include file(s)
>> 
>> 
>> 
>> I experienced similar issues on Mac and was able to fix by adding PKG_CPPFLAGS=-I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include to my .R/Makevars
>> 
>> 
>> 
>> My understanding is that Mac no longer uses the /usr/local/include so you need to point it to the usr/include in the Developer SDK folder
>> 
>> 
>> 
>> On Sun, May 3, 2020 at 8:59 AM Paul Fishwick <metaphorz at gmail.com> wrote:
>> 
>> 
>> 
>> 
>> System: Mac OSX 11 (Catalina), Rstudio with R version 3.6.3 (but have also tried 4.0 and 3.3),
>> 
>> Xcode version 11.4.1
>> 
>> 
>> 
>> Went to:  http://adv-r.had.co.nz/Rcpp.html#rcpp-intro
>> 
>> 
>> 
>> and tried library(rcpp) which worked fine because I previously had installed the rcpp package.
>> 
>> 
>> 
>> The following yields an error in finding config.h. I did a "find" on config.h and sure enough it is not
>> 
>> in the clang++ -I directory references. Here is what I have tried:
>> 
>> 
>> 
>> Installing Xcode's command line tools (which were installed using xcode-select --install)
>> 
>> Also, downloaded and installed the version of clang8 and gfortran6.1 from:
>> 
>> 
>> 
>> https://cran.r-project.org/bin/macosx/tools/
>> 
>> 
>> 
>> The following error occurs when I try this rcpp example from Hadley but it also happens whenever
>> 
>> I try to install an R package from source. The compile fails due to not finding some include file.
>> 
>> 
>> 
>> I would have thought that installing clang8 would have also included the proper include (.h) file directories
>> 
>> with their contents needed by R.
>> 
>> 
>> 
>> Is there something I am missing below? Thank you.
>> 
>> 
>> 
>>> library(Rcpp)
>>> cppFunction('int add(int x, int y, int z) {
>> +   int sum = x + y + z;
>> +   return sum;
>> + }')
>> In file included from fileb6e52d3a23c3.cpp:1:
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp.h:27:
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/RcppCommon.h:29:
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/r/headers.h:67:
>> In file included from /Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include/Rcpp/platform/compiler.h:100:
>> In file included from /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/cmath:304:
>> In file included from /usr/local/include/math.h:8:
>> In file included from /usr/local/include/features.h:10:
>> /usr/local/include/forwards.h:10:10: fatal error: 'config.h' file not found
>> #include "config.h"
>>         ^~~~~~~~~~
>> 1 error generated.
>> make: *** [fileb6e52d3a23c3.o] Error 1
>> clang++ -std=gnu++11 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG   -I"/Library/Frameworks/R.framework/Versions/3.6/Resources/library/Rcpp/include" -I"/private/var/folders/bt/1gd00p5s6n19m_bgh9b04gxc0000gp/T/RtmpRRyaky/sourceCpp-x86_64-apple-darwin15.6.0-1.0.4" -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk -I/usr/local/include  -fPIC  -Wall -g -O2  -c fileb6e52d3a23c3.cpp -o fileb6e52d3a23c3.o
>> Error in sourceCpp(code = code, env = env, rebuild = rebuild, cacheDir = cacheDir,  :
>>  Error 1 occurred building shared library.
>>> 
>> 
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
>> 
>> _______________________________________________
>> Rcpp-devel mailing list
>> Rcpp-devel at lists.r-forge.r-project.org
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
> 
> 
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel



More information about the Rcpp-devel mailing list