【问题标题】:Why gcc complains a library can't be found while it's already there?为什么 gcc 抱怨一个库已经存在时找不到?
【发布时间】:2012-12-05 08:01:30
【问题描述】:

消息如下:

$:~/software/version_1.02/example$ gcc -Wall -Wextra example.c -I../include -L../lib -lnnmf -larpack -llapack \
-lblas -o main
In file included from example.c:47:
../include/nmfdriver.h:92:7: warning: no newline at end of file
example.c:53: warning: unused parameter ‘argc’
example.c:53: warning: unused parameter ‘argv’
/usr/bin/ld: cannot find -larpack
collect2: ld returned 1 exit status
$:~/software/version_1.02/example$ ls /usr/lib/*arpack*
/usr/lib/libarpack.so.2  /usr/lib/libarpack.so.2.0.0

arpackyum(包管理器)安装。我想知道为什么找不到。 有没有人知道如何解决这个问题?

【问题讨论】:

  • 可能会寻找没有版本的libarpack.so。也许您需要 dev 包或符号链接。
  • 您必须查找libarpack 是否存在于../lib 或默认库路径中。

标签: c linux linker centos shared-libraries


【解决方案1】:

它可能正在寻找没有版本后缀的库。
尝试创建一个不带版本后缀的链接到某个版本化的链接:

sudo ln -s /usr/lib/arpack.so.2 /usr/lib/arpack.so

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-27
    • 2017-01-17
    • 1970-01-01
    • 2013-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-25
    相关资源
    最近更新 更多