使用f2py链接库

时间:2014-03-02 06:37:21

标签: python numpy linker fortran f2py

我有一个使用一些库文件的fortran程序。我正在尝试将它们与正在创建的模块文件链接起来。

我尝试链接的库文件名为ulib.a,位于/home/replace/lib/

目录中

我使用的命令是:

f2py -L/home/replace/lib/ -lulib.a -c main.f -m progs

我收到以下错误:

/usr/bin/ld: cannot find -lulib.a
collect2: ld returned 1 exit status
/usr/bin/ld: cannot find -lulib.a
collect2: ld returned 1 exit status

我将不胜感激任何帮助!

3 个答案:

答案 0 :(得分:3)

尝试不使用.a - 我有理由确定链接器已经知道库是.a所以在你的例子中它将寻找ulib.a.a并且失败。

答案 1 :(得分:1)

我必须从库名中删除扩展名,并提供完整路径。出于某种原因,使用-L参数提供路径不起作用。

f2py -l/home/replace/lib/ulib -c main.f -m progs

答案 2 :(得分:0)

库应具有全名libxxx.a,其中xxx是给定名称。然后做

f2py -L. -lxxx -c main.f90 -m progs

请注意,只有xxx-l之后。如果您自己创建库,请记住包括-fPIC。例如,它可能看起来像这样:

gfortran -c -fPIC source1.f90 source2.f90
ar crs libxxx.a obj1.o obj2.o
f2py -L. -lxxx -c main.f90 -m progs

在此示例中找到了指导:https://modelingguru.nasa.gov/docs/DOC-2343