R中的共享对象

R中的共享对象

问题描述:

我想从R运行一个FORTRAN子程序。我读到了,我需要一个共享对象(.so文件)来运行子程序。 为了创建共享对象,我成功编译了FORTRAN子例程。 但是,当创建共享对象它给了以下错误R中的共享对象

/usr/bin/ld: temain.o: relocation R_X86_64_32 against `.rodata' can not be 
used when making a shared object; 
recompile with -fPIC 
temain.o: could not read symbols: Bad value 
collect2: error: ld returned 1 exit status 

给出的命令是gfortran -shared -o temain.so *.o

我该怎么办? 在此先感谢

您需要-fPIC作为错误消息说。

请参阅Writing R Extensions手册并使用R CMD COMPILE myfile.f

+0

它给出了相同的错误 –

+0

解决了它(有很多警告)。之前它给出了错误,因为我没有删除以前创建的.o文件。 –

+0

你显然必须删除并重建它。这就是整个观点:没有重定位信息的对象代码。 –