DReichLab / EIG

Eigen tools by Nick Patterson and Alkes Price lab
Other
180 stars 60 forks source link

recipe for target 'smshrink' failed #39

Closed boiscat closed 4 years ago

boiscat commented 5 years ago

Hi, my gcc and fortran is used 7.4.0, the following chinese words mean many functions not be defined. The version I want to install is EIG-7.2.1

cc smshrink.o eigensrc/eigsubs.o eigensrc/exclude.o eigensrc/smartsubs.o eigensrc/eigx.o twsubs.o mcio.o qpsubs.o admutils.o egsubs.o regsubs.o gval.o nicksrc/libnick.a ksrc/kjg_fpca.o ksrc/kjg_gsl.o -lgsl -lopenblas -lm -lpthread -o smshrink ksrc/kjg_gsl.o:在函数‘kjg_gsl_dlange’中: kjg_gsl.c:(.text+0x4da):对‘LAPACKE_dlange’未定义的引用 ksrc/kjg_gsl.o:在函数‘kjg_gsl_dgeqrf’中: kjg_gsl.c:(.text+0x53a):对‘LAPACKE_dgeqrf’未定义的引用 ksrc/kjg_gsl.o:在函数‘kjg_gsl_dorgqr’中: kjg_gsl.c:(.text+0x5a0):对‘LAPACKE_dorgqr’未定义的引用 ksrc/kjg_gsl.o:在函数‘kjg_gsl_SVD’中: kjg_gsl.c:(.text+0x893):对‘LAPACKE_dgesvd’未定义的引用 collect2: error: ld returned 1 exit status <内置>: recipe for target 'smshrink' failed make: *** [smshrink] Error 1

MatthewMah commented 5 years ago

This looks like the linker cannot find a separate lapacke library. That's covered by the readme here: https://github.com/DReichLab/EIG/blob/fb4fb59065055d3622e0f97f0149588eae630a3e/README#L95

Basically, you need to add an additional directive to the linker to include this library, which some distributions have separate from the gsl library.

boiscat commented 4 years ago

Thank's for your help, EIG now is working. @MatthewMah