c++ - 使用 gcc 链接库 - ld : cannot find -larpack

标签 c++ gcc installation arpack

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

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 的软件时一直出现相同的错误。我使用的链接命令错了吗?

最佳答案

你要么想要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 的解释。

关于c++ - 使用 gcc 链接库 - ld : cannot find -larpack,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44076355/

相关文章:

c++ - 不能使用友好的 CRTP 类的私有(private)构造函数

c++ - 我可以向不同的线程发送信号吗

linux - 在 Fedora 17 上安装 Boost.Log

无法使用 -std=c99 找到 math.h 常量?

C可变宽度位域

visual-studio - 在 VS Toolbox 中安装自定义控件

windows - 手动安装 Ruby 1.8.7(和其他东西)

c++ - png_read_image 访问冲突?

C++11 绑定(bind)方法签名简化

c++ - 组合位图/图像列表 (Win32)