[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