Simon. I’ll do that. Thanks. Paul

Paul Fishwick, PhD
Distinguished University Chair of Arts, Technology, and Emerging Communication
Professor of Computer Science
Director, Creative Automata Laboratory
The University of Texas at Dallas
Arts & Technology
800 West Campbell Road, AT10
Richardson, TX 75080-3021
Home: utdallas.edu/atec/fishwick
Media: medium.com/@metaphorz
Modeling: digest.sigsim.org
Twitter: @PaulFishwick

> On May 4, 2020, at 2:39 AM, Simon Urbanek <simon.urba...@r-project.org> wrote:
> 
> 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 <metaph...@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" <kevinus...@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 <metaph...@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 <carlg...@gmail.com>
>>> Date: Sunday, May 3, 2020 at 12:04 PM
>>> To: Paul Fishwick <metaph...@gmail.com>
>>> Cc: <rcpp-devel@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 <metaph...@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 <carlg...@gmail.com>
>>> Date: Sunday, May 3, 2020 at 11:02 AM
>>> To: Paul Fishwick <metaph...@gmail.com>
>>> Cc: <rcpp-devel@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 <metaph...@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@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@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@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@lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to