[R-SIG-Mac] Writing R package that calls Fortran on Mac os X El Capitan Error
Eduardo M. A. M.Mendes
emammendes at gmail.com
Thu Jun 16 23:04:08 CEST 2016
Since I am not an expert on writing R extensions (although I have lots of old and new fortran source codes linked to R), my guess is that R only calls the library named after package. You have useDynLib twice.
You are welcome.
Please update the thread in R-List in case someone there is interested in the answer.
> On Jun 16, 2016, at 5:53 PM, Kodalore Vijayan, Vineetha W <vwkv13 at mun.ca> wrote:
>
> Perfect! Its working now. Thanks a lot for your patience and help.
>
> Just curious, what did I do wrong in the previous case?
>
> -Vineetha
>
> On Thu, Jun 16, 2016 at 2:48 PM, Eduardo M. A. M.Mendes <emammendes at gmail.com <mailto:emammendes at gmail.com>> wrote:
> Please rename your NAMESPACE to something else and create a new one with
>
> useDynLib(NEpidemic,.registration = TRUE)
> export(randomepi)
>
> It is worth a try.
>
>> On Jun 16, 2016, at 5:40 PM, Kodalore Vijayan, Vineetha W <vwkv13 at mun.ca <mailto:vwkv13 at mun.ca>> wrote:
>>
>> Yes. My package name is "Epidemic" and namespace contains the following:
>>
>> useDynLib(randomepi)
>> useDynLib(Nepidemic, .registration = TRUE)
>>
>> exportPattern("^[[:alpha:]]+")
>> export(randomepi)
>> import(graphics,grDevices,stats, utils)
>>
>>
>> I could see Nepidemic.so and randomepi.o files in the src folder.
>>
>> -V
>>
>>
>>
>>
>> On Thu, Jun 16, 2016 at 2:28 PM, Eduardo M. A. M.Mendes <emammendes at gmail.com <mailto:emammendes at gmail.com>> wrote:
>> Dear Vennetha
>>
>> I am running R on a mac too.
>>
>> Please see if my comments below helps.
>>
>>
>>> On Jun 16, 2016, at 5:00 PM, Kodalore Vijayan, Vineetha W <vwkv13 at mun.ca <mailto:vwkv13 at mun.ca>> wrote:
>>>
>>> I'm trying to write an R package that calls a Fortran subroutine on my Mac
>>> os x El Capitan with Xcode 7 and gfortran 6.1, R 3.3.0.
>>>
>>> I couldn't build the library with my current namespace commands.
>>> I get the following error:
>>>
>>>
>>> * installing *source* package ‘Nepidemic’ ...
>>> ** libs
>>> gfortran -fPIC -Wall -g -O2 -c randomepi.f95 -o randomepi.o
>>> gfortran -dynamiclib -Wl,-headerpad_max_install_names -undefined
>>> dynamic_lookup -single_module -multiply_defined suppress
>>> -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o
>>> Nepidemic.so randomepi.o -F/Library/Frameworks/R.framework/.. -framework R
>>> -Wl,-framework -Wl,CoreFoundation
>>
>> The name of the library created by r cmd shlib is Nepidemic.so.
>>
>>> installing to
>>> /Users/Vineetha/myrlibrary/myrpackages/Nepidemic.Rcheck/Nepidemic/libs
>>> ** R
>>> ** preparing package for lazy loading
>>> ** help
>>> *** installing help indices
>>> ** building package indices
>>> ** testing if installed package can be loaded
>>> Error in library.dynam(lib, package, package.lib) :
>>> shared object ‘randomepi.so’ not found
>>
>> Note that the r cmd check is looking for randomepi.so so it means that it is calling the wrong library (it should be Nepidemic.so). Are you sure that the NAMESPACE contains the following lines?
>>
>> useDynLib(NEpidemic,.registration = TRUE)
>> export(randomepi)
>>
>> in all the examples I have those lines would suffice.
>>
>>> Error: loading failed
>>> Execution halted
>>> ERROR: loading failed
>>> * removing
>>> ‘/Users/Vineetha/myrlibrary/myrpackages/Nepidemic.Rcheck/Nepidemic’
>>>
>>>
>>> My package name is "NEpidemic" and source code file in src folder is
>>> "randomepi.f95"
>>>
>>> Any help would be much appreciated. I'm vey new to both R
>>> and Fortran coding, especially in package building.
>>>
>>> Thanks in advance!
>>> Vineetha
>>>
>>> [[alternative HTML version deleted]]
>>>
>>> _______________________________________________
>>> R-SIG-Mac mailing list
>>> R-SIG-Mac at r-project.org <mailto:R-SIG-Mac at r-project.org>
>>> https://stat.ethz.ch/mailman/listinfo/r-sig-mac <https://stat.ethz.ch/mailman/listinfo/r-sig-mac>
>>
>
>
[[alternative HTML version deleted]]
More information about the R-SIG-Mac
mailing list