David, On 12 July 2010 at 20:50, David Rosengarten wrote: | Well I'm not quite sure why it's different for me then, but your theory fixed | it! This is the result of 'ldd rinside_sample0': | | linux-vdso.so.1 => (0x00007fff720dd000) | libR.so => /usr/lib/R/lib/libR.so (0x00007f351598d000)
Cool. One down. Good to know. | libblas.so.3gf => /usr/lib/atlas/libblas.so.3gf (0x00007f3514ff2000) | liblapack.so.3gf => /usr/lib/atlas/liblapack.so.3gf (0x00007f35143ea000) | libRcpp.so => /usr/local/lib/R/site-library/Rcpp/lib/libRcpp.so | (0x00007f3514192000) | libRInside.so => /usr/local/lib/R/site-library/RInside/lib/libRInside.so | (0x00007f3513f7d000) | libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f3513c68000) | libm.so.6 => /lib/libm.so.6 (0x00007f35139e5000) | libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f35137ce000) | libc.so.6 => /lib/libc.so.6 (0x00007f351344a000) | libgfortran.so.3 => /usr/lib/libgfortran.so.3 (0x00007f351315d000) | libreadline.so.6 => /lib/libreadline.so.6 (0x00007f3512f1c000) | libpcre.so.3 => /lib/libpcre.so.3 (0x00007f3512ced000) | libbz2.so.1.0 => /lib/libbz2.so.1.0 (0x00007f3512adc000) | libz.so.1 => /lib/libz.so.1 (0x00007f35128c5000) | libdl.so.2 => /lib/libdl.so.2 (0x00007f35126c0000) | /lib64/ld-linux-x86-64.so.2 (0x00007f3515f18000) | libncurses.so.5 => /lib/libncurses.so.5 (0x00007f351247d000) | | and the examples run now. Thanks so much for your help. | | As a further question (sorry for all the trouble), do you know how I can adapt | the makefile so that a program will compile with the gsl libraries? I tried | adding: | | CFLAGS = -I/usr/include/gsl | LDFLAGS = -lgsl -lgslblasnative You want += here to add your values, not = as that would erase prior values. Else use new definitions (eg GSL_CFLAGS) which you later insert into the CXXFLAGS definition. | CC = g++ | %: %.cpp | $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ | | as well as 'rm -f *~ *.o core a.out' in clean:, but upon 'make' I am getting | the error | | metrop.cpp:14:21: error: RInside.h: No such file or directory | make: *** [metrop] Error 1 Yes. You effectively everything we need to build with RInside. Not a good plan :) | for my program metrop.cpp. The only thing regarding R that I have in my code | as of now is #include <RInside.h>. But that implies Rcpp as well as R so you need headers from three places, libs from three places, rpath entries ... all before you even mentioned GSL. Dirk | Best, | David | | On Mon, Jul 12, 2010 at 5:38 PM, Dirk Eddelbuettel <[email protected]> wrote: | | | Hi David, | | Thanks for hanging in there -- I think you just found a real bug on our | side! | | On 12 July 2010 at 17:21, David Rosengarten wrote: | | The result of sudo apt-get install r-base-core is: | | | | Reading package lists... Done | | Building dependency tree | | Reading state information... Done | | r-base-core is already the newest version. | | r-base-core set to manually installed. | | The following packages were automatically installed and are no longer | required: | | linux-headers-2.6.32-21-generic linux-headers-2.6.32-21 dkms | | Use 'apt-get autoremove' to remove them. | | 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded. | | | | So, it looks like I should already have the shared libraries installed. | I | | originally installed the R packages from the Ubuntu Software Center, and | then I | | installed Rcpp and RInside using install.packages() in R. Does this | give any | | new information, or should I try uninstalling everything and starting | from | | scratch? | | It's perfect. I had to scratch my head for a moment, but then I got an | idea. | | Here is the story I currently suspect: | | 1) r-base-core is built using shared libraries, but these are private | to R | | 2) R itself sets a LD_LIBRARY_PATH in the shell script /usr/bin/R so | all | is good for normal R use | | 3) I _used to_ add a file /etc/ld.so.conf.d/libR.conf which made the | 'hidden' location of R visible to the system | | 4) Unfortunately, this is considered cheating and bad use by the | so-called | Debian Policy my Debian R package has to conform to so I had to stop | that. | | 5) Because of 3), my systems still have /etc/ld.so.conf.d/libR.conf | which | is why 'ldd rinside_sample0' resolves all shared libs for, but | because | of 4) you no longer do ! | | To fix this, try placing these two line in a file /etc/ld.so.conf.d/ | libR.conf | (without the leading psace, though) | | # make libR.so visible to ld.so | /usr/lib/R/lib | | On amd64, you could also use | | # make libR.so visible to ld.so | /usr/lib64/R/lib | | The run 'sudo ldconfig' and repeat 'ldd rinside_sample0'. It should now | find | libR.so, and if so, you should be able to run all examples. | | If this hunch is wrong we need to look somewhere else. If the hunch is | right, I need to modify the examples so that libR.so gets an Rpath | invocation | as we do for libRcpp.so and libRInside.so. | | Hope this helps, Dirk | | | | | | | | Thanks, | | David | | | | On Mon, Jul 12, 2010 at 4:52 PM, Dirk Eddelbuettel <[email protected]> | wrote: | | | | | | David, | | | | Thanks for bringing the discussion here with is more topical for | Rcpp and | | RInside. | | | | On 12 July 2010 at 16:34, David Rosengarten wrote: | | | Hi, | | | | | | I originally emailed the r-sig-debian list and was directed here. | I | | am | | | trying to run the examples in /RInside/examples/standard such as | | | rinside_sample_0, but I am getting the error: | | | | | | error while loading shared libraries: libR.so: cannot open shared | object | | file: | | | No such file or directory | | | | | | Does anyone know how to deal with this? I was told to include | the | | output of | | | 'make' and 'ldd ./rinside_sample0', so they are as follows: | | | | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample0.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample0 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample1.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample1 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample2.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample2 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample3.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample3 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample4.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample4 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample5.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample5 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample6.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample6 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample7.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample7 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_sample8.cpp | | | -L/usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/ | | Rcpp/ | | | lib -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/ | usr/local | | /lib/R | | | /site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_sample8 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_test0.cpp -L | | | /usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/Rcpp | | /lib | | | -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/usr/ | local/lib | | /R/ | | | site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_test0 | | | g++ -I/usr/share/R/include -I/usr/local/lib/R/site-library/Rcpp/ | include | | -I/usr/ | | | local/lib/R/site-library/RInside/lib -g -O2 -Wall -s | | rinside_test1.cpp -L | | | /usr/lib64/R/lib -lR -lblas -llapack -L/usr/local/lib/R/ | site-library/Rcpp | | /lib | | | -lRcpp -Wl,-rpath,/usr/local/lib/R/site-library/Rcpp/lib -L/usr/ | local/lib | | /R/ | | | site-library/RInside/lib -lRInside -Wl,-rpath,/usr/local/lib/R/ | | site-library/ | | | RInside/lib -o rinside_test1 | | | | | | linux-vdso.so.1 => (0x00007fff30bff000) | | | libR.so => not found | | | libblas.so.3gf => /usr/lib/atlas/libblas.so.3gf | (0x00007f50d2512000) | | | liblapack.so.3gf => /usr/lib/atlas/liblapack.so.3gf | (0x00007f50d190a000) | | | libRcpp.so => /usr/local/lib/R/site-library/Rcpp/lib/libRcpp.so | | | (0x00007f50d16b2000) | | | libRInside.so => /usr/local/lib/R/site-library/RInside/lib/ | libRInside.so | | | (0x00007f50d149d000) | | | libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x00007f50d1188000) | | | libm.so.6 => /lib/libm.so.6 (0x00007f50d0f05000) | | | libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x00007f50d0cee000) | | | libc.so.6 => /lib/libc.so.6 (0x00007f50d096a000) | | | libgfortran.so.3 => /usr/lib/libgfortran.so.3 | (0x00007f50d067d000) | | | /lib64/ld-linux-x86-64.so.2 (0x00007f50d2ecd000) | | | libR.so => not found | | | libR.so => not found | | | | There is your problem. | | | | | I have R and r-base-dev installed, so I don't understand why this | is | | happening. | | | Any help would be much appreciated. | | | | You may have R, but I suspect you do not have R built with shared | | libraries. | | The quickest fix, given that you started on r-sig-debian, may be | | | | $ sudo apt-get install r-base-core | | | | Else you can of course rebuild R from source etc, but you have to | tell | | configure to use --enable-R-shlib or else you cannot embed | R. And | | RInside wants to embed R, so you can't the latter witout the | former. | | | | Hope this helps. | | | | -- | | Regards, Dirk | | | | | | | | ---------------------------------------------------------------------- | | _______________________________________________ | | Rcpp-devel mailing list | | [email protected] | | https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel | | -- | Regards, Dirk | | -- Regards, Dirk _______________________________________________ Rcpp-devel mailing list [email protected] https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
