sourmash-bio / sourmash

Quickly search, compare, and analyze genomic and metagenomic data sets.
http://sourmash.readthedocs.io/en/latest/
Other
476 stars 79 forks source link

ImportError: sourmash_lib/_minhash.so: undefined symbol: _ #288

Closed davidvilanova closed 5 years ago

davidvilanova commented 7 years ago

Hi getting this strange .so linkage error while compiling soursmash.

~/work/.../sourmash/sourmash$ make clean all
python setup.py clean --all
running clean
removing 'build/temp.linux-x86_64-2.7' (and everything under it)
removing 'build/lib.linux-x86_64-2.7' (and everything under it)
'build/bdist.linux-x86_64' does not exist -- can't clean it
'build/scripts-2.7' does not exist -- can't clean it
removing 'build'
cd doc && make clean
make[1]: Entering directory `/work/test/sources/sourmash/sourmash/doc'
rm -rf _build/*
make[1]: Leaving directory `/work/test/sources/sourmash/sourmash/doc'
python setup.py build_ext -i
running build_ext
skipping 'sourmash_lib/_minhash.cpp' Cython extension (up-to-date)
building 'sourmash_lib._minhash' extension
creating build
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/sourmash_lib
creating build/temp.linux-x86_64-2.7/third-party
creating build/temp.linux-x86_64-2.7/third-party/smhasher
gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./sourmash_lib -I./third-party/smhasher/ -I/work/test/anaconda2/include/python2.7 -c sourmash_lib/_minhash.cpp -o build/temp.linux-x86_64-2.7/sourmash_lib/_minhash.o -std=c++11 -pedantic -O3
cc1plus: warning: command line option ?-Wstrict-prototypes? is valid for C/ObjC but not for C++
sourmash_lib/_minhash.cpp: In function ?PyObject* __pyx_pf_12sourmash_lib_8_minhash_7MinHash_40intersection(__pyx_obj_12sourmash_lib_8_minhash_MinHash*, __pyx_obj_12sourmash_lib_8_minhash_MinHash*)?:
sourmash_lib/_minhash.cpp:6895:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   if (((__pyx_t_11 > __pyx_t_12) != 0)) {
         ~~~~~~~~~~~^~~~~~~~~~~~
gcc -fno-strict-aliasing -g -O2 -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -fPIC -I./sourmash_lib -I./third-party/smhasher/ -I/work/test/anaconda2/include/python2.7 -c third-party/smhasher/MurmurHash3.cc -o build/temp.linux-x86_64-2.7/third-party/smhasher/MurmurHash3.o -std=c++11 -pedantic -O3
cc1plus: warning: command line option ?-Wstrict-prototypes? is valid for C/ObjC but not for C++
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/sourmash_lib
g++ -pthread -shared -L/work/test/anaconda2/lib -Wl,-rpath=/work/test/anaconda2/lib,--no-as-needed build/temp.linux-x86_64-2.7/sourmash_lib/_minhash.o build/temp.linux-x86_64-2.7/third-party/smhasher/MurmurHash3.o -L/work/test/anaconda2/lib -lpython2.7 -o build/lib.linux-x86_64-2.7/sourmash_lib/_minhash.so
copying build/lib.linux-x86_64-2.7/sourmash_lib/_minhash.so -> sourmash_lib

Execution

~/work/.../sourmash/sourmash$ ./sourmash
Traceback (most recent call last):
  File "./sourmash", line 4, in <module>
    from sourmash_lib.__main__ import main
  File "/work/test/sources/sourmash/sourmash/sourmash_lib/__init__.py", line 8, in <module>
    from ._minhash import (MinHash, get_minhash_default_seed, get_minhash_max_hash)
ImportError: /work/test/sources/sourmash/sourmash/sourmash_lib/_minhash.so: undefined symbol: _ZTINSt8ios_base7failureB5cxx11E
~/work/.../sourmash/sourmash$ g++ --version
g++ (GCC) 6.1.0
Copyright (C) 2016 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.

Running python python 2.7.13 under linux

Have no idea what this is .

ctb commented 7 years ago

Sorry to let this languish so long - but I will now comment with a totally unhelpful message! I have no idea! However this issue seems to identify something similar - are you using anaconda? If so can you try running conda install libgcc?

ctb commented 5 years ago

Closing for now.