4

我正在努力理解一位物理学家同事的 C 代码,该代码使用了我以前从未使用过的 Lapack。我使用 sudo apt-get 来安装 lapack。我一直在编译

gcc  -llapack Dirac.c -o Dirac -lm

我得到了编译错误“未定义对'zheev'的引用”我知道zheev是lapack中的一个函数,所以我认为安装出了点问题或者某些地方不正确。有人可以解释一下我是否需要做某种链接或者我需要在哪里保存东西才能编译?如果这是一个菜鸟问题,我很抱歉。

4

1 回答 1

4

链接程序时,需要将库放在编译结束时:

gcc Dirac.c -o Dirac -llapack -lm

链接过程的工作方式是该库用于查找迄今为止出现的未解析符号。当您-llapack首先放置时,由于您的程序中还没有任何未解析的符号(因为它还没有编译任何东西),所以它最终不会使用该库。

于 2013-07-17T00:48:42.257 回答