[Rquantlib-devel] Building rquantlib on windows

Bryan W. Lewis blewis at illposed.net
Wed Sep 24 15:17:31 CEST 2014


On 9/24/14, Dirk Eddelbuettel <edd at debian.org> wrote:
>
> Hi Michele
>
> On 24 September 2014 at 11:29, Michele Salvadore wrote:
> | Hi,
> |
> | I am trying to build rquantib on windows as I need to add/improve some
> features
> | related to fixed income pricing.
>
> Cool!  Contributions for fixed income would be excellent!
>
> | This is my e4nvironment configuration:
> |
> | BOOSTLIB="C:/workspace/lib/boost/boost_1_56_0"
> | QUANTLIB_ROOT="C:/workspace/lib/QuantLib/QuantLib-1.4"
>
> So I presume you built / installed both from source?
>
> R and its tools are a little picky sometimes. This as works (eg for the
> Windows binaries on CRAN) with a prepared builds you can also get from
> CRAN.
>
> See here:   http://www.stats.ox.ac.uk/pub/Rtools/R215x.html
>
> With directory:  http://www.stats.ox.ac.uk/pub/Rtools/goodies/multilib/
>
> That Quantlib14.zip then has the QuantLib library and Boost headers
> referenced in src/Makevars.win via the environment variable.
>
>
> That said, it should of course also work as you do, but you have to be
> careful:
>
> | > sessionInfo()
> | R version 3.1.1 (2014-07-10)
> | Platform: x86_64-w64-mingw32/x64 (64-bit)
> |
> | locale:
> | [1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United
> States.1252
> |
> | [3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C
>
> |
> | [5] LC_TIME=English_United States.1252
> |
> | attached base packages:
> | [1] stats     graphics  grDevices utils     datasets  methods   base
> |
> | loaded via a namespace (and not attached):
> | [1] tools_3.1.1
> |
> | When I "Build & Reload" (from RStudio) I get the following:
> |
> | ==> Rcmd.exe INSTALL --no-multiarch --with-keep.source rquantlib
> |
> | * installing to library 'C:/Program Files/R/R-3.1.1/library'
> | * installing *source* package 'RQuantLib' ...
> |
> |    **********************************************
> |    WARNING: this package has a configure script
> |          It probably needs manual configuration
> |    **********************************************
> |
> |
> | ** libs
> | g++ -m64 -I"C:/PROGRA~1/R/R-31~1.1/include" -DNDEBUG    -I"C:/Program
> Files/R/
> | R-3.1.1/library/Rcpp/include"
> -I"d:/RCompile/CRANpkg/extralibs64/local/include"
> |  -I"C:/workspace/lib/QuantLib/QuantLib-1.4" -I../inst/include -I. -I"C:/
> | workspace/lib/boost/boost_1_56_0"   -O2 -Wall  -mtune=core2 -c
> RcppExports.cpp
> | -o RcppExports.o
> | In file included from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/models/
> | model.hpp:30:0,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/pricingengines/
> | latticeshortratemodelengine.hpp:28,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/experimental/
> | callablebonds/treecallablebondengine.hpp:28,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/experimental/
> | callablebonds/all.hpp:9,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/experimental/
> | all.hpp:6,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/
> | quantlib.hpp:42,
> |                  from ../inst/include/rquantlib_internal.h:24,
> |                  from ../inst/include/RQuantLib.h:23,
> |                  from RcppExports.cpp:4:
> |
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/lattices/lattice.hpp:169:0:
> | warning: ignoring #pragma omp parallel [-Wunknown-pragmas]
>
> So you gcc / g++ does not know about OpenMP?  I can't recall what the
> status
> was -- OpenMP and its lib may be an additional download?  In any event this
> does not block CRAN for its own builds of RQuantLib binaries for Windows.
> So
> there must be a fix.
>
> | In file included from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | finitedifferences/operatortraits.hpp:27:0,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | finitedifferences/utilities/fdmboundaryconditionset.hpp:27,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | finitedifferences/solvers/fdmbackwardsolver.hpp:28,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/experimental/
> | finitedifferences/fdextoujumpvanillaengine.hpp:30,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/experimental/
> | finitedifferences/all.hpp:5,
> |                  from
> C:/workspace/lib/QuantLib/QuantLib-1.4/ql/experimental/
> | all.hpp:15,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/
> | quantlib.hpp:42,
> |                  from ../inst/include/rquantlib_internal.h:24,
> |                  from ../inst/include/RQuantLib.h:23,
> |                  from RcppExports.cpp:4:
> | C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/finitedifferences/
> | stepcondition.hpp:48:0: warning: ignoring #pragma omp parallel
> | [-Wunknown-pragmas]
> | In file included from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | finitedifferences/fdtypedefs.hpp:28:0,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | finitedifferences/americancondition.hpp:28,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | finitedifferences/all.hpp:4,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/
> | all.hpp:4,
> |                  from C:/workspace/lib/QuantLib/QuantLib-1.4/ql/
> | quantlib.hpp:47,
> |                  from ../inst/include/rquantlib_internal.h:24,
> |                  from ../inst/include/RQuantLib.h:23,
> |                  from RcppExports.cpp:4:
> | C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/finitedifferences/
> | parallelevolver.hpp:51:0: warning: ignoring #pragma omp parallel
> | [-Wunknown-pragmas]
> | C:/workspace/lib/QuantLib/QuantLib-1.4/ql/methods/finitedifferences/
> | parallelevolver.hpp:102:0: warning: ignoring #pragma omp parallel
> | [-Wunknown-pragmas]
> | In file included from C:/Program
> Files/R/R-3.1.1/library/Rcpp/include/Rcpp/
> | as.h:25:0,
> |                  from C:/Program Files/R/R-3.1.1/library/Rcpp/include/
> | RcppCommon.h:169,
> |                  from ../inst/include/rquantlib_internal.h:30,
> |                  from ../inst/include/RQuantLib.h:23,
> |                  from RcppExports.cpp:4:
> | C:/Program Files/R/R-3.1.1/library/Rcpp/include/Rcpp/internal/Exporter.h:
> In
> | constructor 'Rcpp::traits::Exporter<T>::Exporter(SEXP) [with T = long
> long
> | unsigned int, SEXP = SEXPREC*]':
> | C:/Program Files/R/R-3.1.1/library/Rcpp/include/Rcpp/as.h:79:51:
> instantiated
> | from 'T Rcpp::internal::as(SEXP, Rcpp::traits::r_type_generic_tag) [with T
> =
> | long long unsigned int, SEXP = SEXPREC*]'
> | C:/Program Files/R/R-3.1.1/library/Rcpp/include/Rcpp/as.h:144:84:
> | instantiated from 'T Rcpp::as(SEXP) [with T = long long unsigned int, SEXP
> =
> | SEXPREC*]'
> | C:/Program
> Files/R/R-3.1.1/library/Rcpp/include/Rcpp/InputParameter.h:34:45:
> | instantiated from 'Rcpp::InputParameter<T>::operator T() [with T = long
> long
> | unsigned int]'
> | RcppExports.cpp:29:161:   instantiated from here
> | C:/Program
> Files/R/R-3.1.1/library/Rcpp/include/Rcpp/internal/Exporter.h:31:31:
> | error: invalid conversion from 'SEXP' to 'long long unsigned int'
>
> You may need to define the C++11 compilation so that we get 'long long'
> types. That is a known issue with Boost.  Or maybe we need to set a define
> to
> not request it -- I don't recall.

I'll also try to experiment with this on Windows. I hit something
similar to this a while back and used the newer int64_t type from
inttypes.h. I'll let you know what I find...

>
>
> As a test, you could also try uploading your source to
>    http://win-builder.r-project.org
> Make sure you use YOUR email in the Maintainer field or the results email
> goes to me.
>
> Let me know how it goes. I hope we can make this work.
>
> Dirk
>
> | [-fpermissive]
> | make: *** [RcppExports.o] Error 1
> | Warning: running command 'make -f "Makevars.win" -f
> "C:/PROGRA~1/R/R-31~1.1/etc
> | /x64/Makeconf" -f "C:/PROGRA~1/R/R-31~1.1/share/make/winshlib.mk"
> SHLIB_LDFLAGS
> | ='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="RQuantLib.dll"
> WIN=64
> | TCLBIN=64 OBJECTS="RcppExports.o asian.o barrier_binary.o bermudan.o
> bonds.o
> | calendars.o curves.o dates.o daycounter.o discount.o hullwhite.o
> implieds.o
> | modules.o utils.o vanilla.o zero.o"' had status 2
> | ERROR: compilation failed for package 'RQuantLib'
> | * removing 'C:/Program Files/R/R-3.1.1/library/RQuantLib'
> | * restoring previous 'C:/Program Files/R/R-3.1.1/library/RQuantLib'
> |
> | Exited with status 1.
> |
> |
> | Any idea how to fix this?
> |
> | Thanks,
> | Michele
> | _______________________________________________
> | Rquantlib-devel mailing list
> | Rquantlib-devel at lists.r-forge.r-project.org
> |
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rquantlib-devel
>
> --
> http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org
> _______________________________________________
> Rquantlib-devel mailing list
> Rquantlib-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rquantlib-devel
>


More information about the Rquantlib-devel mailing list