<div dir="ltr">On Sun, Feb 3, 2013 at 2:41 PM, Simon Zehnder <span dir="ltr"><<a href="mailto:szehnder@uni-bonn.de" target="_blank">szehnder@uni-bonn.de</a>></span> wrote:<br><div class="gmail_extra"><div class="gmail_quote">
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Dear Rcpp-Devels,<br>
<br>
maybe you have an answer for me as packaging is a little new for me:<br>
<br>
I took the NLopt library (<a href="http://ab-initio.mit.edu/wiki/index.php/NLopt" target="_blank">http://ab-initio.mit.edu/wiki/index.php/NLopt</a>) and installed it into a subfolder /nlopt-2.3 in my package-/src folder. The library depends on a header nlopt.hpp and a static library libnlopt.a.<br>

<br>
My Makervars in the /src-folder looks like this (using RcppArmadillo):<br>
<br>
PKG_CPPFLAGS = -Inlopt-2.3/include -g -O1<br>
PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` $(LAPACK_LIBS) $(BLAS_LIBS) $(FLIBS) -Lnlopt-2.3/lib/libnlopt.a<br>
<br>
When I call R CMD INSTALL /MCpkgArmadillo I get<br>
<br>
Error in dyn.load(file, DLLpath = DLLpath, ...) :<br>
  unable to load shared object '/rwthfs/rz/cluster/home/simo_109/opt/R/lib64/R/library/MCpkgArmadillo/libs/MCpkgArmadillo.so':<br>
  /rwthfs/rz/cluster/home/simo_109/opt/R/lib64/R/library/MCpkgArmadillo/libs/MCpkgArmadillo.so: undefined symbol: nlopt_set_munge<br>
<br>
So, it seems, that the linking to the static library has to be extended/modified in some way. How should I change it? I looked at Subsection 1.2.1.3 Compiling in subdirectories on <a href="http://cran.r-project.org/doc/manuals/R-exts.html" target="_blank">http://cran.r-project.org/doc/manuals/R-exts.html</a> but this shows an example, where there is code in subdirectories, that has to be archived into a static library.<br>

<br>
Is it even possible to put already a static library into the package and then compile? Or do I have to put in all source files of the NLopt library and create during compiling the package the static library of the NLopt library?<br>
</blockquote><div><br></div><div style>It is possible and we do so in the Matrix package where we have the .a files from the various SuiteSparse C libraries but we modify the makefiles in those libraries so that the .a file ends up in the src directory, not a subdirectory of src.</div>
<div style><br></div><div style>It seems to work. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
How is it intended to be done?<br>
<br>
<br>
Best<br>
<br>
Simon<br>
<br>
_______________________________________________<br>
Rcpp-devel mailing list<br>
<a href="mailto:Rcpp-devel@lists.r-forge.r-project.org">Rcpp-devel@lists.r-forge.r-project.org</a><br>
<a href="https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel" target="_blank">https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel</a><br>
</blockquote></div></div></div>