我试图做一些软件的发布,目前正在通过构建过程的脚本工作。我被困在了一些我从未想过的事情上,在x86_64 linux上静态链接LAPACK。在配置AC_SEARCH_LIB([main],[lapack])
工程,但编译的lapack单位不起作用,例如undefiend reference to 'dsyev_'
- nolapack/blas例程不被注意。静态链接反对LAPACK
我已经确认我已经安装了库,甚至用适当的选项自己编译它们,使它们具有相同的结果。
下面是我在我的LAPACK第一次的经验,几年前使用的例子是动态的作品,而不是静态地:http://pastebin.com/cMm3wcwF
这两种方法我使用的编译有以下几种,
gcc -llapack -o eigen eigen.c
gcc -static -llapack -o eigen eigen.c
真的,我可以发誓我已经读过,通过我昨晚/今天的搜索,现代连接器将重新排序。这有效,但它似乎无法找到我的blas例程 - 甚至w /'-lblas'。干杯。 – nlucaroni
其他图书馆必须为此完全运作,'-llapack -lblas -lgfortran -lm'。 – nlucaroni
链接器将尝试调整链接顺序以满足活动依赖关系的图形。但是,连接语句仍然是“从左到右”读取的,如果您指定了一个在当前集合中没有依赖关系的库,它就会被跳过。这是我在这里发生的事情。 – talonmies