biocLite("lpsymphony") consistently fails with linker errors (can't find static libraries to link)
1
0
Entering edit mode
sunnetau • 0
@sunnetau-14465
Last seen 7.0 years ago

Hi,

the installation of "lpsymphony" with biocLite (biocLite("lpsymphony")) consistently fails towards the end with the following error messages:

[...]
make[5]: Entering directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY'
PKG_CONFIG_PATH=/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/lib64/pkgconfig:/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/lib/pkgconfig:/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/share/pkgconfig::/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/lib64/pkgconfig \
pkg-config --libs symphony > /tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/share/coin/doc/SYMPHONY/sym_addlibs.txt
make[5]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY'
make[4]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY'
make[3]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY'
make[2]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY'
make[2]: Entering directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY'
make[3]: Entering directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY'
make[3]: Nothing to be done for `install-exec-am'.
make[3]: Nothing to be done for `install-data-am'.
make[3]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY'
make[2]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY'
make[1]: Leaving directory `/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY'
touch SYMPHONY.ts
g++ -I/ibios/tbi_cluster/13.1/x86_64/R/R-3.4.0/lib64/R/include -DNDEBUG -ISYMPHONY/include -I/usr/local/include -fpic -g -O2 -c lp_symphony.cc -o lp_symphony.o
g++ -shared -L/ibios/tbi_cluster/13.1/x86_64/R/R-3.4.0/lib64/R/lib -L/usr/local/lib64 -o lpsymphony.so lp_symphony.o -LSYMPHONY/lib -lSym -lCgl -lOsiClp -lClp -lOsi -lCoinUtils -llapack -lblas -lgfortran -lm -lquadmath -L/ibios/tbi_cluster/13.1/x86_64/R/R-3.4.0/lib64/R/lib -lR
/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 ‘/ibios/tbi_cluster/13.1/x86_64/R/R-3.4.0/lib64/R/library/lpsymphony’
[...]

the problem as far as I can see is, that the pathes given in the pkgconfig files are wrong, hence the linker doesn't find the libraries to link into the application.  From the pathes given in the $PKG_CONFIG_PATH variable, only /tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/lib/pkgconfig contains pkgconfig files and these contain wrong pathes:

$ cat /tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/lib/pkgconfig/symphony.pc
prefix=/tmp/RtmpMHWvJW/Rbuild6d5ce5c339e/lpsymphony/src/SYMPHONY
exec_prefix=${prefix}
libdir=${exec_prefix}/lib
includedir=${prefix}/include/coin

Name: SYMPHONY
Description: SYMPHONY MILP Solver Framework
URL: https://projects.coin-or.org/SYMPHONY
Version: 5.6.10
Libs: -L${libdir} -lSym  -lgomp
Cflags: -I${includedir} -fopenmp
Requires: cgl osi-clp coinutils osi
$

There are additional pkgconfig files in /tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY/ and these do contain the correct pathes:

$ cat /tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY/SYMPHONY/symphony.pc
prefix=/tmp/RtmpDgQW2c/R.INSTALL2f0e230a700c/lpsymphony/src/SYMPHONY
exec_prefix=${prefix}
libdir=${exec_prefix}/lib64
includedir=${prefix}/include/coin

Name: SYMPHONY
Description: SYMPHONY MILP Solver Framework
URL: https://projects.coin-or.org/SYMPHONY
Version: 5.6.10
Libs: -L${libdir} -lSym  -lgomp
Cflags: -I${includedir} -fopenmp
Requires: cgl osi-clp coinutils osi
$

Unfortunately this pkgconfig directory is not referenced in $PKG_CONFIG_PATH.  Any idea where this problem comes from and how to fix it?  Spontaneously I'd classify this as a bug in the installer.

Cheers

frank

 

lpsymphony package installation bioclite • 1.6k views
ADD COMMENT
0
Entering edit mode
@vladislavkim-8059
Last seen 6.5 years ago
Germany

Dear Frank,

I can't reproduce this installation error. The `prefix` directory is one of the first variables to be set; it is passed on to the configure script and subsequently passed to all configure/Makefile scripts. As basic as it is, I am pretty sure that the `prefix` is carried over correctly by Autotools when config files and Makefiles are created.

 

Are you sure that the two `symphony.pc` files that you output here were created during the same installation attempt? 

 

What OS, version of R/gcc/g++/autoconf/automake are you using? Perhaps, you can simply e-mail me the output / log file of your compilation.

 

ADD COMMENT

Login before adding your answer.

Traffic: 537 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6