我已经编译了一整套生物信息学分析工具。(https://github.com/iontorrent/TS) 它有很多依赖项(如armadillo、blas、lapack、atlas等)。
在编译时,没有出现任何错误。问题是,创建的某些可执行文件无法正常工作,并且没有其他信息,会抛出Illegal Instruccion。我正在使用GCC 4.8.2在CentOS 5.6上进行操作。
我想知道如何调试这些可执行文件,以便检查我的系统中哪个库或代码出现了问题。
我认为问题出在 LAPACK/BLAS/CBLAS 上。 我对如何从源代码构建 LAPACK/BLAS 和 CBLAS 感到非常困惑(Centos 5 的 rpm 版本的 LAPACK/BLAS 已过时,需要 LAPACK 3.2.1)。 我知道如何编译 LAPACK 和 BLAS,但不知道如何安装 CBLAS。
谢谢。
编辑:
这个分析套件的提供者还提供了一个预先安装了 Ubuntu 和所有软件的 VM。 我查看了他们的 gcc 版本和配置:
在编译时,没有出现任何错误。问题是,创建的某些可执行文件无法正常工作,并且没有其他信息,会抛出Illegal Instruccion。我正在使用GCC 4.8.2在CentOS 5.6上进行操作。
我想知道如何调试这些可执行文件,以便检查我的系统中哪个库或代码出现了问题。
./tvc
tvc 4.0-7 () - Torrent Variant Caller
Illegal instruction
我认为问题出在 LAPACK/BLAS/CBLAS 上。 我对如何从源代码构建 LAPACK/BLAS 和 CBLAS 感到非常困惑(Centos 5 的 rpm 版本的 LAPACK/BLAS 已过时,需要 LAPACK 3.2.1)。 我知道如何编译 LAPACK 和 BLAS,但不知道如何安装 CBLAS。
谢谢。
编辑:
这个分析套件的提供者还提供了一个预先安装了 Ubuntu 和所有软件的 VM。 我查看了他们的 gcc 版本和配置:
gcc -v Using built-in specs. Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 4.4.3-4ubuntu5.1'
--with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs --enable-languages=c,c++,fortran,objc,obj-c++ --prefix=/usr --enable-shared --enable-multiarch --enable-linker-build-id --with-system-zlib --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --with-gxx-include-dir=/usr/include/c++/4.4 --program-suffix=-4.4 --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-plugin --enable-objc-gc --disable-werror --with-arch-32=i486 --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1)
我的GCC配置:
Configured with: ../configure --prefix=/share/apps/local/gcc/4.8.2 --with-mpfr=/share/apps/local/gcc/4.8.2 --with-gmp=/share/apps/local/gcc/4.8.2 --with-as=/share/apps/local/binutils/2.24/bin/as --enable-languages=c,c++,fortran
Thread model: posix
gcc version 4.8.2 (GCC)