繁体   English   中英

如何将库.a与f2py链接?

[英]How to link a library .a with f2py?

我正在尝试使用ugly将CUTEst与python接口。 我试图像这样使用f2py:

f2py -c -m ugly \
 /home/gabriel/Documentos/ugly/src/gen77/gen77_main.f \
 /home/gabriel/Documentos/ugly/src/gen77/gen77.f \
 ELFUN.f GROUP.f RANGE.f \
 -L/home/gabriel/Documentos/ugly/objects/pc64.lnx.gfo/double \
 -lcutest

其中libcutes.a/home/gabriel/Documentos/ugly/objects/pc64.lnx.gfo/double f2py没有生成文件ugly.os并给出了以下消息:

/ usr / bin / ld:/home/gabriel/Documentos/ugly/objects/pc64.lnx.gfo/double/libcutest.a(usetup.o):不使用R_X86_64_32S替代文件..rodata.str1.1不能对付任何人; 重新编译

另一方面,如果我使用gfortran进行编译,则可以正常工作。

要在Python的目标文件中使用代码,必须将目标文件编译为使用位置无关的代码,以便链接程序可以将其包含为共享对象的一部分。 该错误表明该库.rodata.str1.1未编译为使用位置无关的代码,因此它不能包含在共享对象中。 您需要重新编译要链接的库,并在编译时将附加标志-fPIC传递给gcc / gfortran。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM