[Rcppoctave-user] Cannot load RcppOctave.so onto Mac OS
Yitping Kok
yitping at mpe.mpg.de
Fri Nov 22 09:25:14 CET 2013
Hi all,
I tried compiling with CC=clang and CXX=clang++ added into ~/.R/Makevars and I got a different symbol not found. This symbol and the previous one are indeed in RcppOctave.so but why is R not loading it? I have also tried setting LD_LIBRARY_PATH and DYLD_LIBRARY_PATH before compiling, jus in case.
Any suggestions would be very welcome. Thanks in advance again.
Yitping
Error : .onLoad failed in loadNamespace() for 'RcppOctave', details:
call: dyn.load(file, DLLpath = DLLpath, ...)
error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so':
dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so, 6): Symbol not found: __ZN4Rcpp11EnvironmentixERKNSt3__112basic_stringIcNS1_11char_traitsIcEENS1_9allocatorIcEEEE
Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so
Expected in: flat namespace
in /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so
On Nov 21, 2013, at 3:44 PM, Yitping Kok <yitping at mpe.mpg.de> wrote:
> Hi Renaud,
>
> But the symbol (__Z22bind_internal_variableRKSsRK12octave_value) that was reported not found in the error message belongs to RcppOctave.so instead of to liboctave.
>
> [yitping at dooku src]$ nm RcppOctave.so | grep __Z22bind_internal_variable
> U __Z22bind_internal_variableRKSsRK12octave_value
>
> [yitping at dooku src]$ nm /opt/local/lib/octave/3.6.4/liboctave.dylib | grep __Z22bind_internal_variable
>
> I tried your suggestion anyway but similar error returned.
>
> Yitping
>
>
> On Nov 21, 2013, at 12:02 PM, Renaud Gaujoux <renaud at mancala.cbio.uct.ac.za> wrote:
>
>> Ah, true, you would need to add type = 'source' to the install.packages command.
>> Anyway this is not the actual problem.
>>
>> It looks like the octave library are either not found or not loaded correctly (maybe due to the compiler discrepancy).
>> Can you try this (not sure this is correct on Mac)
>>
>> LD_LIBRARY_PATH=/opt/local/lib/octave/3.6.4 R CMD INSTALL RcppOctave_0.13.3.tar.gz
>>
>> The idea is to put ensure the octave libraries are in the PATH.
>>
>> Renaud
>>
>>
>> On 21 November 2013 12:54, Yitping Kok <yitping at mpe.mpg.de> wrote:
>> Hi Renaud,
>>
>> I tried your suggestion but R complains that the package is not available as a binary. This is the same error that led me to compile it from the command line in the first place. But trying it from the command line with RcppOctave_0.13.3.tar.gz from the suggested repository and using the suggested installation options did not work either. The output of is below.
>>
>> Thanks again.
>>
>> Yitping
>>
>> [yitping at dooku src]$ R CMD INSTALL --no-docs --no-help RcppOctave
>> * installing to library ‘/Library/Frameworks/R.framework/Versions/3.0/Resources/library’
>> * installing *source* package ‘RcppOctave’ ...
>> checking for gcc... gcc
>> checking whether the C compiler works... yes
>> checking for C compiler default output file name... a.out
>> checking for suffix of executables...
>> checking whether we are cross compiling... no
>> checking for suffix of object files... o
>> checking whether we are using the GNU C compiler... yes
>> checking whether gcc accepts -g... yes
>> checking for gcc option to accept ISO C89... none needed
>> checking for g++... g++
>> checking whether we are using the GNU C++ compiler... yes
>> checking whether g++ accepts -g... yes
>> Original R_LDFLAGS: -F/Library/Frameworks/R.framework/.. -framework R
>> Original R_CPPFLAGS: -I/Library/Frameworks/R.framework/Resources/include
>> checking whether R is a shared library... yes
>> checking type of Operating System... Darwin
>> checking whether OS is Mac OS (Darwin)... yes
>> Using mkoctfile with R_LDFLAGS: -Wl,"-F/Library/Frameworks/R.framework/.. -framework R"
>> Using mkoctfile with R_CPPFLAGS: -I/Library/Frameworks/R.framework/Resources/include
>> checking for octave-config... /opt/local/bin/octave-config
>> checking for mkoctfile... /opt/local/bin/mkoctfile
>> checking Octave include flags... -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include
>> checking Octave -L flags... -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib
>> checking Octave libraries... -loctinterp -loctave -lcruft
>> checking Octave version... 3.6.4
>> checking whether to infer output names for Octave function (>= 3.4.3)... yes
>> Using Octave LDFLAGS: -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft
>> Using Octave CPPFLAGS: -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -DOCT_POST_3_4_0=1
>> checking RcppOctave Octave module directory... /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/modules
>> configure: creating ./config.status
>> config.status: creating src/Makevars
>> configure: creating ./config.status
>> config.status: creating src/Makevars
>> config.status: creating src/modules/Makefile
>> ** libs
>> "/opt/local/bin/mkoctfile" -v utils.cc
>> /usr/bin/clang++ -c -fPIC -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -I/opt/local/include -pipe -Os -arch x86_64 utils.cc -o utils.o
>> /usr/bin/clang++ -bundle -bundle_loader /opt/local/bin/octave-3.6.4 -o utils.oct utils.o -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft -arch x86_64
>> "/opt/local/bin/mkoctfile" -v -I/Library/Frameworks/R.framework/Resources/include -L/Library/Frameworks/R.framework/Libraries -lR Rrng.cc
>> /usr/bin/clang++ -c -fPIC -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -I/opt/local/include -pipe -Os -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include Rrng.cc -o Rrng.o
>> /usr/bin/clang++ -bundle -bundle_loader /opt/local/bin/octave-3.6.4 -o Rrng.oct Rrng.o -L/Library/Frameworks/R.framework/Libraries -lR -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft -arch x86_64
>> # Copying Octave modules to directory '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/modules'
>> llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG `"/Library/Frameworks/R.framework/Resources/bin/Rscript" -e "Rcpp:::CxxFlags()"` -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -DOCT_POST_3_4_0=1 -I/usr/local/include -I"/Library/Frameworks/R.framework/Versions/3.0/Resources/library/Rcpp/include" -fPIC -I/opt/local/include -c conversion.cpp -o conversion.o
>> llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG `"/Library/Frameworks/R.framework/Resources/bin/Rscript" -e "Rcpp:::CxxFlags()"` -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -DOCT_POST_3_4_0=1 -I/usr/local/include -I"/Library/Frameworks/R.framework/Versions/3.0/Resources/library/Rcpp/include" -fPIC -I/opt/local/include -c rcpp_octave.cpp -o rcpp_octave.o
>> llvm-g++-4.2 -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -L/usr/local/lib -o RcppOctave.so conversion.o rcpp_octave.o /Library/Frameworks/R.framework/Versions/3.0/Resources/library/Rcpp/lib/libRcpp.a -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
>> installing to /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs
>> ** R
>> ** demo
>> ** inst
>> ** preparing package for lazy loading
>> ** building package indices
>> ** installing vignettes
>> ** testing if installed package can be loaded
>> Error : .onLoad failed in loadNamespace() for 'RcppOctave', details:
>> call: dyn.load(file, DLLpath = DLLpath, ...)
>> error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so':
>> dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so, 6): Symbol not found: __Z22bind_internal_variableRKSsRK12octave_value
>> Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so
>> Expected in: flat namespace
>> in /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so
>> Error: loading failed
>> Execution halted
>> ERROR: loading failed
>> * removing ‘/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave’
>>
>>
>> On Nov 21, 2013, at 10:49 AM, Renaud Gaujoux <renaud at mancala.cbio.uct.ac.za> wrote:
>>
>>> Hi Dominick,
>>>
>>> Yitping is compiling (successfully) with macports, but there seem to be an issue when actually calling the code.
>>> I see in the log that mkoctfile uses clang, while R calls llvm-g++, could that be the origin of the problem?
>>>
>>> Yitping, could you please try the following:
>>>
>>> install.packages('RcppOctave', repos='http://web.cbio.uct.ac.za/~renaud/CRAN', INSTALL_opts = '--no-docs --no-help')
>>> library(RcppOctave)
>>> OctaveConfig()
>>> getLoadedDLLs()
>>> o_runif(1)
>>>
>>>
>>> Thank you
>>>
>>> On 21 November 2013 11:36, Renaud Gaujoux <renaud at mancala.cbio.uct.ac.za> wrote:
>>> Thanks for the details Yitping, forwarding now to the list.
>>> Please remember to Cc the list in your replies, so that there is a record for future public reference.
>>>
>>> On 20 November 2013 22:20, Yitping Kok <yitping at mpe.mpg.de> wrote:
>>> Hi Renaud,
>>>
>>> Thanks for your prompt reply. I tried the install_github() method you suggested but to no success either. The error is similar to what I had earlier, which source codes downloaded from RcppOctave cran webpage. Below are the log and error messages in case it is helpful.
>>>
>>> I have also included the output of sessionInfo() and Sys.info(). My Octave installation was done through MacPorts (octave-devel @3.6.4_9+atlas+docs+gcc48).
>>>
>>> Thanks in advance.
>>>
>>> Yitping
>>>
>>> > library(devtools)
>>> > install_github('RcppOctave', 'renozao', ref = 'develop')
>>> Installing github repo(s) RcppOctave/develop from renozao
>>> Downloading RcppOctave.zip from https://github.com/renozao/RcppOctave/archive/develop.zip
>>> Installing package from /var/folders/8x/g0dbm9yd1pz5n54vh5vdsmv40000gr/T//Rtmp4VW5GA/RcppOctave.zip
>>> Installing RcppOctave
>>> '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla CMD INSTALL \
>>> '/private/var/folders/8x/g0dbm9yd1pz5n54vh5vdsmv40000gr/T/Rtmp4VW5GA/RcppOctave-develop' \
>>> --library='/Library/Frameworks/R.framework/Versions/3.0/Resources/library' \
>>> --with-keep.source --install-tests
>>>
>>> * installing *source* package 'RcppOctave' ...
>>> checking for gcc... gcc
>>> checking whether the C compiler works... yes
>>> checking for C compiler default output file name... a.out
>>> checking for suffix of executables...
>>> checking whether we are cross compiling... no
>>> checking for suffix of object files... o
>>> checking whether we are using the GNU C compiler... yes
>>> checking whether gcc accepts -g... yes
>>> checking for gcc option to accept ISO C89... none needed
>>> checking for g++... g++
>>> checking whether we are using the GNU C++ compiler... yes
>>> checking whether g++ accepts -g... yes
>>> Original R_LDFLAGS: -F/Library/Frameworks/R.framework/.. -framework R
>>> Original R_CPPFLAGS: -I/Library/Frameworks/R.framework/Resources/include
>>> checking whether R is a shared library... yes
>>> checking type of Operating System... Darwin
>>> checking whether OS is Mac OS (Darwin)... yes
>>> Using mkoctfile with R_LDFLAGS: -Wl,"-F/Library/Frameworks/R.framework/.. -framework R"
>>> Using mkoctfile with R_CPPFLAGS: -I/Library/Frameworks/R.framework/Resources/include
>>> checking for octave-config... /opt/local/bin/octave-config
>>> checking for mkoctfile... /opt/local/bin/mkoctfile
>>> checking Octave include flags... -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include
>>> checking Octave -L flags... -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib
>>> checking Octave libraries... -loctinterp -loctave -lcruft
>>> checking Octave version... 3.6.4
>>> checking whether to infer output names for Octave function (>= 3.4.3)... yes
>>> Using Octave LDFLAGS: -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft
>>> Using Octave CPPFLAGS: -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -DOCT_POST_3_4_0=1
>>> checking RcppOctave Octave module directory... /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/modules
>>> configure: creating ./config.status
>>> config.status: creating src/Makevars
>>> configure: creating ./config.status
>>> config.status: creating src/Makevars
>>> config.status: creating src/modules/Makefile
>>> ** libs
>>> "/opt/local/bin/mkoctfile" -v utils.cc
>>> /usr/bin/clang++ -c -fPIC -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -I/opt/local/include -pipe -Os -arch x86_64 utils.cc -o utils.o
>>> /usr/bin/clang++ -bundle -bundle_loader /opt/local/bin/octave-3.6.4 -o utils.oct utils.o -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft -arch x86_64
>>> "/opt/local/bin/mkoctfile" -v -I/Library/Frameworks/R.framework/Resources/include -Wl,"-F/Library/Frameworks/R.framework/.. -framework R" Rrng.cc
>>> /usr/bin/clang++ -c -fPIC -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -I/opt/local/include -pipe -Os -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include Rrng.cc -o Rrng.o
>>> /usr/bin/clang++ -bundle -bundle_loader /opt/local/bin/octave-3.6.4 -o Rrng.oct Rrng.o -Wl,-F/Library/Frameworks/R.framework/.. -framework R -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft -arch x86_64
>>> # Copying Octave modules to directory '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/modules'
>>> llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG `"/Library/Frameworks/R.framework/Resources/bin/Rscript" -e "Rcpp:::CxxFlags()"` -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -DOCT_POST_3_4_0=1 -I/usr/local/include -I"/Library/Frameworks/R.framework/Versions/3.0/Resources/library/Rcpp/include" -fPIC -I/opt/local/include -c conversion.cpp -o conversion.o
>>> llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG `"/Library/Frameworks/R.framework/Resources/bin/Rscript" -e "Rcpp:::CxxFlags()"` -I/opt/local/include/octave-3.6.4/octave/.. -I/opt/local/include/octave-3.6.4/octave -I/opt/local/include -DOCT_POST_3_4_0=1 -I/usr/local/include -I"/Library/Frameworks/R.framework/Versions/3.0/Resources/library/Rcpp/include" -fPIC -I/opt/local/include -c rcpp_octave.cpp -o rcpp_octave.o
>>> llvm-g++-4.2 -arch x86_64 -dynamiclib -Wl,-headerpad_max_install_names -undefined dynamic_lookup -single_module -multiply_defined suppress -L/usr/local/lib -L/usr/local/lib -o RcppOctave.so conversion.o rcpp_octave.o /Library/Frameworks/R.framework/Versions/3.0/Resources/library/Rcpp/lib/libRcpp.a -L/opt/local/lib/octave/3.6.4 -L/opt/local/lib -loctinterp -loctave -lcruft -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework -Wl,CoreFoundation
>>> installing to /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs
>>> ** R
>>> ** demo
>>> ** inst
>>> ** tests
>>> ** preparing package for lazy loading
>>> ** help
>>> Error : /private/var/folders/8x/g0dbm9yd1pz5n54vh5vdsmv40000gr/T/Rtmp4VW5GA/RcppOctave-develop/man/o_addpath.Rd:41: .onLoad failed in loadNamespace() for 'RcppOctave', details:
>>> call: dyn.load(file, DLLpath = DLLpath, ...)
>>> error: unable to load shared object '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so':
>>> dlopen(/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so, 6): Symbol not found: __Z22bind_internal_variableRKSsRK12octave_value
>>> Referenced from: /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so
>>> Expected in: flat namespace
>>> in /Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave/libs/RcppOctave.so
>>> ERROR: installing Rd objects failed for package 'RcppOctave'
>>> * removing '/Library/Frameworks/R.framework/Versions/3.0/Resources/library/RcppOctave'
>>>
>>>
>>>
>>>
>>> R version 3.0.2 (2013-09-25)
>>> Platform: x86_64-apple-darwin10.8.0 (64-bit)
>>>
>>> locale:
>>> [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
>>>
>>> attached base packages:
>>> [1] stats graphics grDevices utils datasets methods base
>>>
>>>
>>> sysname
>>> "Darwin"
>>> release
>>> "13.0.0"
>>> version
>>> "Darwin Kernel Version 13.0.0: Thu Sep 19 22:22:27 PDT 2013; root:xnu-2422.1.72~6/RELEASE_X86_64"
>>> nodename
>>> "dooku.local"
>>> machine
>>> "x86_64"
>>> login
>>> "yitping"
>>> user
>>> "yitping"
>>> effective_user
>>> “yitping"
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>> On Nov 20, 2013, at 8:26 PM, Renaud Gaujoux <renaud at mancala.cbio.uct.ac.za> wrote:
>>>
>>>> Hi Yitping,
>>>>
>>>> thank you for your interest in the RcppOctave package, which will hopefully provide what you need... once you get it working :D
>>>> It will be great to get your feedback on how things work from a Mac-Octave user point of view.
>>>>
>>>> The package should compile fine with the settings described in the README file.
>>>> Can you please send more details on your R (output of sessionInfo() and Sys.info) and Octave installation.
>>>> Did you fetch the latest version of the source package from github?
>>>>
>>>> In R, try:
>>>>
>>>> library(devtools)
>>>> install_github('RcppOctave', 'renozao', ref = 'develop')
>>>>
>>>>
>>>> Renaud
>>>>
>>>>
>>>> On 20 November 2013 19:25, Yitping Kok <yitping at mpe.mpg.de> wrote:
>>>> Hi RcppOctave users,
>>>>
>>>> I have just found out about this R packages and I am very excited about it. I am an Octave user and would like to use more R. Therefore I think this package will be perfect for me.
>>>>
>>>> I also understand that the package still has some installation issues with Mac OS. However I tried to install the package on a Mac platform anyway for the sake of trying and this is what I got.
>>>>
>>>> - I have Octave 3.6.4 installed.
>>>> - I managed to compile the shared library, RcppOctave.so.
>>>> - But I cannot proceed (to generating the documentation part) because the library cannot be loaded. This is the error message I got.
>>>>
>>>> Error in dyn.load("RcppOctave.so") :
>>>> unable to load shared object '/Users/yitping/Toolbox/R/src/RcppOctave/src/RcppOctave.so':
>>>> dlopen(/Users/yitping/Toolbox/R/src/RcppOctave/src/RcppOctave.so, 6): Symbol not found: __Z22bind_internal_variableRKSsRK12octave_value
>>>> Referenced from: /Users/yitping/Toolbox/R/src/RcppOctave/src/RcppOctave.so
>>>> Expected in: flat namespace
>>>> in /Users/yitping/Toolbox/R/src/RcppOctave/src/RcppOctave.so
>>>>
>>>> Any idea why it is so? Any help would be appreciated. Thanks very much.
>>>>
>>>>
>>>> Best regards,
>>>> Yitping
>>>>
>>>> _______________________________________________
>>>> Rcppoctave-user mailing list
>>>> Rcppoctave-user at lists.r-forge.r-project.org
>>>> http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcppoctave-user
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>
>>
>
> _______________________________________________
> Rcppoctave-user mailing list
> Rcppoctave-user at lists.r-forge.r-project.org
> http://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcppoctave-user
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcppoctave-user/attachments/20131122/af08469c/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 496 bytes
Desc: Message signed with OpenPGP using GPGMail
URL: <http://lists.r-forge.r-project.org/pipermail/rcppoctave-user/attachments/20131122/af08469c/attachment-0001.sig>
More information about the Rcppoctave-user
mailing list