#1 incompatible libraries Fedora 8

open
nobody
None
5
2010-04-08
2010-04-08
darked90
No

./configure runs without reporting a problem. While running make I am getting multiple:

/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lm
/usr/bin/ld: skipping incompatible /usr/lib/libcurl.so when searching for -lcurl
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libz.a when searching for -lz
/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc
/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lc

make check:

18 of 18 tests failed

I am on 64 bit Fedora 8, sequenceread-2.1.0 + io_lib 1.12.1.

Discussion

  • Rob Davies
    Rob Davies
    2010-04-27

    The messages about '/usr/bin/ld: skipping incompatible...' are just linker warnings as it skips over your 32 bit libraries. As long as it managed to eventually find the correct 64-bit one, they are nothing to worry about.

    Your problem is most likely to be that the shared library linker can't find the Staden io_lib library (specifically libstaden-read.so.1) when you run illumina2srf. To check if this is the case, take a look in tests/test1.out after you have run 'make check' and see if it contains a message like this (it will be near the end of the file):

    ../illumina2srf/illumina2srf: error while loading shared libraries: libstaden-read.so.1: cannot read shared object file: No such file or directory

    If this is the case, then you can solve the problem by telling the linker where to find libstaden-read. The quickest way to do this is to set the environment variable LD_LIBRARY_PATH to point to the directory where libstaden-read.so.1 was installed (normally /usr/local/lib). Then re-run make check to see if it works. For example:

    LD_LIBRARY_PATH=/usr/local/lib; export LD_LIBRARY_PATH
    make check

    If this works, then you can either set LD_LIBRARY_PATH in your shell configuration; or you can add /usr/local/lib - or whatever the correct location is - to /etc/ld.so.conf and then run ldconfig so the the system knows where to find the library.

    Note that this is all due to the way that the Staden io_lib package is set up (specifically it doesn't set rpath in the library). There is not much that the sequenceread package can do about this, apart from warn you that it may happen.