From my experience, R (on macOS) doesn't play well with libraries that have install names containing runtime search paths. By changing the install name, I mean changing the '@rpath' part here:
$ otool -L /usr/local/lib/libbamdb.dylib /usr/local/lib/libbamdb.dylib: @rpath/libbamdb.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/lib/libck.0.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libhts.2.dylib (compatibility version 2.0.0, current version 1.8.0) /opt/local/lib/liblmdb.dylib (compatibility version 0.0.0, current version 0.0.0) ... using: $ sudo install_name_tool -id /usr/local/lib/libbamdb.dylib /usr/local/lib/libbamdb.dylib $ otool -L /usr/local/lib/libbamdb.dylib /usr/local/lib/libbamdb.dylib: /usr/local/lib/libbamdb.dylib (compatibility version 0.0.0, current version 0.0.0) /usr/local/lib/libck.0.dylib (compatibility version 0.0.0, current version 0.0.0) /opt/local/lib/libhts.2.dylib (compatibility version 2.0.0, current version 1.8.0) /opt/local/lib/liblmdb.dylib (compatibility version 0.0.0, current version 0.0.0) ... Then build the R package (R CMD INSTALL …). Otherwise you could hit an 'image not found' error. (But, to be clear, this error is not related to Rcpp.) Keith > On May 1, 2018, at 12:04 PM, Evan Biederstedt <evan.biederst...@gmail.com> > wrote: > > @Dirk > > > Could you possibly construct a smaller, self-contained example exhibiting > > the > same problem? That may be more efficient than requiring volunteer helpers to > install four other libraries. > > Apologies, this is on the to-do list. > > @Keith > > Thanks for trying this out. This is interesting. > > > Worked for me, after I modified the install name of libbamdb (from a > > runtime path to the installation directory, /usr/local/lib/libbamdb.dylib). > > I want to be sure I understand---Could you clarify this? Which changes did > you make? > > That is created with `sudo make install`, i.e. from above > > ``` > $ sudo make install > Password: > [ 50%] Built target bamdb > [100%] Built target libbamdb > Install the project... > -- Install configuration: "" > -- Installing: /usr/local/bin/bamdb > -- Up-to-date: /usr/local/include/bamdb > -- Up-to-date: /usr/local/include/bamdb/bam_api.h > -- Up-to-date: /usr/local/include/bamdb/bam_lmdb.h > -- Up-to-date: /usr/local/include/bamdb/bamdb.h > -- Installing: /usr/local/lib/libbamdb.dylib > ``` > > > > > > On Tue, May 1, 2018 at 11:42 AM, Keith O'Hara <kth....@gmail.com> wrote: > Worked for me, after I modified the install name of libbamdb (from a runtime > path to the installation directory, /usr/local/lib/libbamdb.dylib). > > * installing to library ‘/Users/<blah blah>/R-devel/lib/R/library’ > * installing *source* package ‘bambi’ ... > ** libs > clang++-mp-6.0 -std=gnu++11 -I"/Users/<blah blah>/R-devel/lib/R/include" > -DNDEBUG -I../inst/include/ -I/usr/local/include/bamdb -I/opt/local/include > -I"/Users/<blah blah>/R-devel/lib/R/library/Rcpp/include" > -I/usr/local/include -fPIC -Wall -march=native -g -O3 -ffp-contract=fast > -c RcppExports.cpp -o RcppExports.o > clang++-mp-6.0 -std=gnu++11 -I"/Users/<blah blah>/R-devel/lib/R/include" > -DNDEBUG -I../inst/include/ -I/usr/local/include/bamdb -I/opt/local/include > -I"/Users/<blah blah>/R-devel/lib/R/library/Rcpp/include" > -I/usr/local/include -fPIC -Wall -march=native -g -O3 -ffp-contract=fast > -c bambi.cpp -o bambi.o > clang++-mp-6.0 -std=gnu++11 -dynamiclib -Wl,-headerpad_max_install_names > -undefined dynamic_lookup -single_module -multiply_defined suppress > -L/Users/<blah blah>/R-devel/lib/R/lib -L/usr/local/lib -o bambi.so > RcppExports.o bambi.o -lbamdb -L/opt/local/lib -llmdb -lhts -L/Users/<blah > blah>/R-devel/lib/R/lib -lR -Wl,-framework -Wl,CoreFoundation > installing to /Users/<blah blah>/R-devel/lib/R/library/bambi/libs > ** R > ** byte-compile and prepare package for lazy loading > ** help > *** installing help indices > ** building package indices > ** testing if installed package can be loaded > * DONE (bambi) > > Try building from a new, clean directory. > > Keith > > > On May 1, 2018, at 10:24 AM, Evan Biederstedt <evan.biederst...@gmail.com> > > wrote: > > > > @Keith > > > > > Unless I'm mistaken, neither are required to install binary packages. Can > > > you check your *source* build setup; try: > > > > > curl -O > > > https://cran.r-project.org/src/contrib/RcppArmadillo_0.8.500.0.tar.gz > > > R CMD INSTALL RcppArmadillo_0.8.500.0.tar.gz > > > > This looks successful > > > > ``` > > $ R CMD INSTALL RcppArmadillo_0.8.500.0.tar.gz > > > > * installing to library > > ‘/Library/Frameworks/R.framework/Versions/3.4/Resources/library’ > > * installing *source* package ‘RcppArmadillo’ ... > > ** package ‘RcppArmadillo’ successfully unpacked and MD5 sums checked > > 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 clang++ accepts -g... yes > > checking how to run the C++ preprocessor... clang++ -E > > checking whether we are using the GNU C++ compiler... (cached) yes > > checking whether clang++ accepts -g... (cached) yes > > checking whether g++ version is sufficient... almost > > configure: WARNING: Compiler self-identifies as being compliant with GNUC > > extensions but is not g++. > > checking for macOS... found > > checking for macOS Apple compiler... found > > configure: WARNING: OpenMP unavailable and turned off. > > checking LAPACK_LIBS... R-supplied partial LAPACK found > > configure: WARNING: Some complex-valued LAPACK functions may not be > > available > > configure: creating ./config.status > > config.status: creating inst/include/RcppArmadilloConfigGenerated.h > > config.status: creating src/Makevars > > ** libs > > clang++ -std=gnu++11 -I/Library/Frameworks/R.framework/Resources/include > > -DNDEBUG > > -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" > > -I/usr/local/include -I../inst/include -fPIC -Wall -g -O2 -c > > RcppArmadillo.cpp -o RcppArmadillo.o > > clang++ -std=gnu++11 -I/Library/Frameworks/R.framework/Resources/include > > -DNDEBUG > > -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" > > -I/usr/local/include -I../inst/include -fPIC -Wall -g -O2 -c > > RcppExports.cpp -o RcppExports.o > > clang++ -std=gnu++11 -I/Library/Frameworks/R.framework/Resources/include > > -DNDEBUG > > -I"/Library/Frameworks/R.framework/Versions/3.4/Resources/library/Rcpp/include" > > -I/usr/local/include -I../inst/include -fPIC -Wall -g -O2 -c fastLm.cpp > > -o fastLm.o > > clang++ -std=gnu++11 -dynamiclib -Wl,-headerpad_max_install_names > > -undefined dynamic_lookup -single_module -multiply_defined suppress > > -L/Library/Frameworks/R.framework/Resources/lib -L/usr/local/lib -o > > RcppArmadillo.so RcppArmadillo.o RcppExports.o fastLm.o > > -L/Library/Frameworks/R.framework/Resources/lib -lRlapack > > -L/Library/Frameworks/R.framework/Resources/lib -lRblas > > -L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0 > > -L/usr/local/gfortran/lib -lgfortran -lquadmath -lm > > -F/Library/Frameworks/R.framework/.. -framework R -Wl,-framework > > -Wl,CoreFoundation > > ld: warning: directory not found for option > > '-L/usr/local/gfortran/lib/gcc/x86_64-apple-darwin15/6.1.0' > > ld: warning: directory not found for option '-L/usr/local/gfortran/lib' > > installing to > > /Library/Frameworks/R.framework/Versions/3.4/Resources/library/RcppArmadillo/libs > > ** R > > ** inst > > ** preparing package for lazy loading > > ** help > > *** installing help indices > > ** building package indices > > ** installing vignettes > > ** testing if installed package can be loaded > > * DONE (RcppArmadillo) > > > > ``` > > > > > Check your build directory for any .Rprofile or .Renviron files, and also > > > check ~/.R/Makevars for errors. > > > > I'm using the command line. I do not seem to have anything in `$ cat > > ~/.R/Makevars` or `$cat ~/.Rprofile`. Perhaps this is the problem? > > > > > > > If you can list the required libraries for bamdb, I'm happy to try a > > > build on my end. (I'm lazy to go through the CMake list :-)) > > > > There are four dependencies: > > > > htslib/1.5 or higher: https://github.com/samtools/htslib > > > > LMDB key-value store: https://github.com/LMDB/lmdb > > > > Concurreny-Ck: https://github.com/concurrencykit/ck > > > > zlib: Standard compression library https://github.com/madler/zlib > > (probably already installed) > > > > Mac OS: > > ``` > > brew install lmdb > > brew install concurrencykit > > brew install zlib // mac OS already provides this software > > brew install htslib // I *think* this is the latest htslib, but I would > > double-check > > ``` > > > > Linux (for the record): > > ``` > > yum install libhts-dev ## dev branch of latest htslib > > yum install liblmdb-dev ## LMDB dev > > yum install libck-dev ## Concurrency-ck > > yum install libz-dev ## zlib compresssion > > ``` > > > > On Tue, May 1, 2018 at 3:45 AM, Keith O'Hara <kth....@gmail.com> wrote: > > Unless I'm mistaken, neither are required to install binary packages. Can > > you check your *source* build setup; try: > > > > curl -O > > https://cran.r-project.org/src/contrib/RcppArmadillo_0.8.500.0.tar.gz > > R CMD INSTALL RcppArmadillo_0.8.500.0.tar.gz > > > > If that goes through without a hitch then it's probably a package issue. > > Are you using RStudio? Check your build directory for any .Rprofile or > > .Renviron files, and also check ~/.R/Makevars for errors. > > > > If you can list the required libraries for bamdb, I'm happy to try a build > > on my end. (I'm lazy to go through the CMake list :-)) > > > > Keith > > > > > On May 1, 2018, at 3:07 AM, Evan Biederstedt <evan.biederst...@gmail.com> > > > wrote: > > > > > > I would add, I think clang and gfortran are working correctly, as these > > > are required for `install.packages('RcppArmadillo')` to install properly. > > > > > > On Tue, May 1, 2018 at 3:06 AM, Evan Biederstedt > > > <evan.biederst...@gmail.com> wrote: > > > Maybe my Mac OS needs updating...possibly something with XCode, but it's > > > not clear how... > > > > > > --- mac OS Sierra 10.12.6 > > > --- CRAN R 3.4.3 > > > ---clang & gfortran > > > > > > $ clang --version > > > Apple LLVM version 9.0.0 (clang-900.0.39.2) > > > Target: x86_64-apple-darwin16.7.0 > > > Thread model: posix > > > InstalledDir: /Library/Developer/CommandLineTools/usr/bin > > > > > > $ gfortran --version > > > GNU Fortran (GCC) 7.1.0 > > > Copyright (C) 2017 Free Software Foundation, Inc. > > > This is free software; see the source for copying conditions. There is NO > > > warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR > > > PURPOSE. > > > > > > I will update once I have access to and try this on several other mac > > > boxes with different specs.. > > > > > > Thank you to everyone for the help. > > > > > > > > > On Tue, May 1, 2018 at 1:44 AM, Ralf Stubner > > > <ralf.stub...@r-institute.com> wrote: > > > > > > Am 30.04.2018 um 23:42 schrieb Evan Biederstedt > > > <evan.biederst...@gmail.com>: > > > > > >> @Ralf > > >> > > >> > I had not installed the necessary C library, so unsurprisingly the > > >> > compilation step already failed. What I find interesting is that in my > > >> > case "-std=gnu++11“ and "-I../inst/include/" are present in the > > >> > command line options for clang++. These are also missing from what you > > >> > quoted and are also a consequence of src/Makevars. It almost looks as > > >> > if this file got lost on your macOS box … > > >> > > >> Interesting....I'm not sure what to make of this of course, but it would > > >> be interesting if it was only happening on this macbook. Perhaps OS > > >> version or brew could be to blame? I'm not sure what else would be > > >> "special" about this macbook.... > > > > > > On my side that would be > > > • macOS high Sierra > > > • CRAN R 3.4.4 > > > • clang and gfortran as recommended by CRAN > > > • brew is installed but I do not see how it enters the picture > > > > > > Greetings > > > Ralf > > > > > > > > > _______________________________________________ > > > Rcpp-devel mailing list > > > Rcpp-devel@lists.r-forge.r-project.org > > > https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel > > > > > > _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel