I created a clean RcppArmadillo-based package using 
RcppArmadillo.package.skeleton and edited the example .cpp file to call 
arma::eig_sym. That works with no errors. Here is the output of 'otool -L' on 
the generated .so file:

        
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libRlapack.dylib 
(compatibility version 2.10.0, current version 2.10.1)
        
/Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libRblas.dylib 
(compatibility version 0.0.0, current version 0.0.0)
        /usr/local/lib/libgfortran.2.dylib (compatibility version 3.0.0, 
current version 3.0.0)
        /Library/Frameworks/R.framework/Versions/2.10/Resources/lib/libR.dylib 
(compatibility version 2.10.0, current version 2.10.1)
        
/System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation 
(compatibility version 150.0.0, current version 550.29.0)
        /usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current 
version 7.9.0)
        /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current 
version 125.2.0)
        /System/Library/Frameworks/vecLib.framework/Versions/A/vecLib 
(compatibility version 1.0.0, current version 268.0.1)

The package that does show this error has only one difference in the linked 
libraries: vecLib is missing. I'm guessing this could well be the reason for 
the error. But for the life of me I don't see anything that would cause this in 
the package building process. FWIW, Makevars and DESCRIPTION in both working 
and non-working package have same entries for package dependencies and link 
flags. Also, the final building step that creates the shared library looks the 
same for both packages:

g++-4.2 -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined 
dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -o 
eigsym.so rcpparma_hello_world.o 
/Library/Frameworks/R.framework/Versions/2.10/Resources/library/Rcpp/lib/x86_64/libRcpp.a
 -L/Library/Frameworks/R.framework/Resources/lib/x86_64 -lRlapack 
-L/Library/Frameworks/R.framework/Resources/lib/x86_64 -lRblas -lgfortran 
-F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework 
-Wl,CoreFoundation

g++-4.2 -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined 
dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -o 
broken.so broken.o 
/Library/Frameworks/R.framework/Versions/2.10/Resources/library/Rcpp/lib/x86_64/libRcpp.a
 -L/Library/Frameworks/R.framework/Resources/lib/x86_64 -lRlapack 
-L/Library/Frameworks/R.framework/Resources/lib/x86_64 -lRblas -lgfortran 
-F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework 
-Wl,CoreFoundation

Davor

On 2010-09-27, at 1:29 PM, Davor Cubranic wrote:

> On 2010-09-27, at 12:54 PM, Dirk Eddelbuettel wrote:
> 
>> On 27 September 2010 at 12:43, Davor Cubranic wrote:
>> | After I upgraded to RcppArmadillo 0.2.6, running existing code that uses 
>> it throws the following error:
>> | 
>> | run-time error: eig_sym(): need LAPACK
>> | 
>> | Any idea what might be causing this? I'm trying to create a minimal code 
>> needed to reproduce the problem, and strangely enough, this works fine:
>> 
>> Hm, works here as is:
> 
> Right, that fragment works fine, it's the real code that bombs. I'll post a 
> small example that reproduces the error when I have it.
> 
> Davor
> _______________________________________________
> Rcpp-devel mailing list
> [email protected]
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

_______________________________________________
Rcpp-devel mailing list
[email protected]
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel

Reply via email to