0

我在没有 root 权限的服务器上安装软件。我在安装过程中遇到以下错误:

make[1]: *** [hgaprec] Error 1
make[1]: Leaving directory `/seq/.../SOFTWARE/hgaprec/src'
make: *** [all-recursive] Error 1
Making install in src
make[1]: Entering directory `/seq/.../SOFTWARE/hgaprec/src'
g++  -O3   -o hgaprec ratings.o main.o log.o hgaprec.o -larpack -llapack -
lblas -lgsl -lpthread -lgslcblas 
/.../software/free/Linux/redhat_6_x86_64/pkgs/gcc_5.2.0/bin/ld: cannot 
find -larpack
collect2: error: ld returned 1 exit status
make[1]: *** [hgaprec] Error 1
make[1]: Leaving directory `/seq/.../SOFTWARE/hgaprec/src'
make: *** [install-recursive] Error 1

由于找不到库arpack,于是我把它安装在这里/seq/.../SOFTWARE/hgaprec/ARPACK,发现进程生成了一个静态文件libarpack_LINUX.a。要将此静态库链接到 gcc,请使用以下命令:

gcc -larpack -L/seq/.../SOFTWARE/hgaprec/ARPACK/libarpack_LINUX.a

但是,在安装未找到 larpack 的软件时,我不断收到相同的错误。我是否使用了错误的链接命令?

4

2 回答 2

1

你要么想要gcc main.c /seq/../SOFTWARE/hgaprec/ARPACK/libarpack_LINUX.a(你不需要-l-L如果你指定静态库的完整路径),或者像@Julian_Cienfuegos 建议的那样gcc main.c -L/seq/../SOFTWARE/hgaprec/ARPACK/ -larpack_LINUX。这假设您只编译一个main.c包含您的main()函数的名为的文件,并输出a.out二进制文件。

编辑:添加了main.c.

于 2017-05-19T18:21:42.863 回答
0

在将 ARPACK 库路径作为 LD 标志的一部分包含在配置中后,我的问题得到了解决,如下所示:

./configure --prefix=/seq/.../SOFTWARE/hgaprec LDFLAGS="-L/seq/.../SOFTWARE/hgaprec/ARPACK/"

于 2017-05-19T19:03:44.147 回答