I would like to include the Fortran routine in the R package. I always only created packages using devtools and roxygen (so my knowledge can be quite limited). I get an error message that prevents me from installing the package after creating it, not being a Win32 application ...
I am using Rtools 3.3. My session info:
> sessionInfo() R version 3.2.2 (2015-08-14) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 7 x64 (build 7601) Service Pack 1 locale: [1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 LC_MONETARY=English_United States.1252 [4] LC_NUMERIC=C LC_TIME=English_United States.1252 attached base packages: [1] stats graphics grDevices utils datasets methods base other attached packages: [1] roxygen2_5.0.1 devtools_1.9.1 loaded via a namespace (and not attached): [1] magrittr_1.5 tools_3.2.2 Rcpp_0.12.1 memoise_0.2.1 stringi_1.0-1 stringr_1.0.0 digest_0.6.8
To build the package initially, I run it:
library(devtools) library(roxygen2) setwd("C:/panterasBox") create("myPack") setwd("C:/panterasBox/myPack") dir.create("C:/panterasBox/myPack/src")
This is the fortran code saved as myFunc.f in the /src
file:
subroutine myFunc(x) implicit none real(8) x x = x + 2 return end
The R wrapper that I use to call it (stored in the /R
file):
Now, to create the documentation and install the package, I run this:
> document() Updating myPack documentation Loading myPack Re-compiling myPack "C:/Users/pantera/DOCUME~1/R/R-32~1.2/bin/x64/R" --no-site-file --no-environ --no-save --no-restore CMD INSTALL \ "C:\panterasBox\myPack" --library="C:\Users\pantera\AppData\Local\Temp\RtmpQdJJko\devtools_install_1df837dd6c29" --no-R \ --no-data --no-help --no-demo --no-inst --no-docs --no-exec --no-multiarch --no-test-load * installing *source* package 'myPack' ... ** libs gfortran -m64 -O2 -mtune=core2 -c myFunc.f -o myFunc.o gcc -m64 -shared -s -static-libgcc -o myPack.dll tmp.def myFunc.o -Ld:/RCompile/r-compiling/local/local320/lib/x64 -Ld:/RCompile/r-compiling/local/local320/lib -lgfortran -LC:/Users/pantera/DOCUME~1/R/R-32~1.2/bin/x64 -lR installing to C:/Users/pantera/AppData/Local/Temp/RtmpQdJJko/devtools_install_1df837dd6c29/myPack/libs/x64 * DONE (myPack) First time using roxygen2. Upgrading automatically... Updating roxygen version in C:\panterasBox\myPack/DESCRIPTION Writing NAMESPACE Writing myFunc.Rd > install("myPack") Installing myPack "C:/Users/pantera/DOCUME~1/R/R-32~1.2/bin/x64/R" --no-site-file --no-environ --no-save --no-restore CMD INSTALL \ "C:/panterasBox/myPack" --library="C:/Users/pantera/Documents/R/R-3.2.2/library" --install-tests * installing *source* package 'myPack' ... ** libs *** arch - i386 make: Nothing to be done for `all'. installing to C:/Users/pantera/Documents/R/R-3.2.2/library/myPack/libs/i386 *** arch - x64 make: Nothing to be done for `all'. installing to C:/Users/pantera/Documents/R/R-3.2.2/library/myPack/libs/x64 ** R ** preparing package for lazy loading ** help *** installing help indices ** building package indices ** testing if installed package can be loaded *** arch - i386 Error in inDL(x, as.logical(local), as.logical(now), ...) : unable to load shared object 'C:/Users/pantera/Documents/R/R-3.2.2/library/myPack/libs/i386/mypack.dll': LoadLibrary failure: %1 is not a valid Win32 application. Error: loading failed Execution halted *** arch - x64 ERROR: loading failed for 'i386' * removing 'C:/Users/pantera/Documents/R/R-3.2.2/library/myPack' Error: Command failed (1)
I also tried to create and test the package through the command line using R CMD build myPack
and then R CMD check myPack_*tar.gz
The only error I get is something in my LaTeX package.
Thanks for reading this, and I appreciate any help offered.
Disclaimer: I previously asked this question, but I wanted to ask again "in a minimal way."