we are trying to install lpsymphony in a local installation of R-3.3.2. A large part of the build process runs without problems, but at some point the build process ends with a linker error:
... g++ -I/home/kong/lib/R-3.3.2/include -DNDEBUG -ISYMPHONY/include -I/usr/local/include -fpic -g -O2 -c lp_symphony.cc -o lp_symphony.o g++ -shared -L/usr/local/lib64 -o lpsymphony.so lp_symphony.o -LSYMPHONY/lib -lSym -lCgl -lOsiClp -lClp -lOsi -lCoinUtils -L/home/kong/lib/R-3.3.2/lib -lRlapack -L/home/kong/lib/R-3.3.2/lib -lRblas -lgfortran -lm -lquadmath /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lSym /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lCgl /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lOsiClp /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lClp /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lOsi /usr/lib64/gcc/x86_64-suse-linux/4.8/../../../../x86_64-suse-linux/bin/ld: cannot find -lCoinUtils collect2: error: ld returned 1 exit status make: * [lpsymphony.so] Error 1 ERROR: compilation failed for package ‘lpsymphony’ * removing ‘/tmp/RtmpPpE9zD/Rinst108f25132dc6/lpsymphony’
The LD_LIBRARY_PATH variable is set to the installation directory of SYMPHONY-5.6.16:
$ echo $LD_LIBRARY_PATH /home/kong/lib/SYMPHONY-5.6.16/lib64/
and that path contains all the shared libraries reported to be missing in the linker error.
Unfortunately, I have not yet been able to tell R to keep the build-directory or report the exact option to the configure script, which hampers the analysis of the issue.
Can anyone please help me?
Maybe I'm missing something, but isn't the point of lpsymphony to remove the need to have SYMPHONY already installed on the system. From the package's DESCRIPTION file:
The main difference between this package and Rsymphony is that it includes the solver source code (SYMPHONY version 5.6), while Rsymphony expects to find header and library files on the users' system. Thus the intention of lpsymphony is to provide an easy to install interface to SYMPHONY.
I just installed the package on a Ubuntu 16.04 based system by running
biocLite('lpsymphony')
without any system installation or changes to my library path. Maybe you're actually creating the conflict by specifying your own location inLD_LIBRARY_PATH
?