在C中使用lapack

4

我正在学习一位同行物理学家编写的C代码,其中使用了Lapack库,而我之前从未接触过。我使用sudo apt-get安装了lapack,并且一直在进行编译。

gcc  -llapack Dirac.c -o Dirac -lm

我遇到了编译错误:“undefined reference to 'zheev'”,我知道zheev是lapack中的一个函数,所以我猜测安装出了问题或者某些文件没有放在正确的位置。请问是否需要进行某种链接操作或者将文件保存在哪里才能使其编译通过?如果这是一个初学者问题,我深感抱歉。

1个回答

4

在链接程序时,需要将库文件放置在编译的最后:

gcc Dirac.c -o Dirac -llapack -lm

链接过程的工作方式是使用库来查找到目前为止出现的未解决符号。当您首先使用-llapack时,由于程序中还没有出现任何未解决的符号(因为它尚未编译任何内容),因此不会使用该库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接