Sorry, I don't have much experience with actually editing Makefiles. Right now I am using the same Makefile as you have except with the final section edited as follows:
## compiler etc settings used in default make rules CXX := $(shell $(R_HOME)/bin/R CMD config CXX) CPPFLAGS := -Wall $(shell $(R_HOME)/bin/R CMD config CPPFLAGS) CPPFLAGS += -I/usr/include/ CXXFLAGS := $(RCPPFLAGS) $(RCPPINCL) $(RINSIDEINCL) $(shell $(R_HOME)/bin/R CMD config CXXFLAGS) LDFLAGS = -s LDFLAGS += -lgsl -lgslcblas -lm LDLIBS := $(RLDFLAGS) $(RBLAS) $(RLAPACK) $(RCPPLIBS) $(RINSIDELIBS) all : $(programs) clean: rm -vf $(programs) rm -f *~ *.o core a.out runAll: for p in $(programs); do echo "Running $$p"; ./$$p; done However, when I run 'make' it says make: nothing to be done for 'all' Any idea how to fix this? Thanks so much for all of your help. Best, David On Mon, Jul 12, 2010 at 9:24 PM, Dirk Eddelbuettel <[email protected]> wrote: > > 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
