[英]Linking Libraries using 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
我将不胜感激任何帮助!
尝试不使用.a - 我有理由确定链接器已经知道库是.a所以在你的例子中它将寻找ulib.aa并失败。
我不得不从库名中删除扩展名,并提供完整路径。 出于某种原因,使用-L
参数提供路径不起作用。
f2py -l/home/replace/lib/ulib -c main.f -m progs
该库应具有全名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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.