2016-06-09 114 views
-1

我想從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

我該怎麼辦? 在此先感謝

回答

0

您需要-fPIC作爲錯誤消息說。

請參閱Writing R Extensions手冊並使用R CMD COMPILE myfile.f

+0

它給出了相同的錯誤 –

+0

解決了它(有很多警告)。之前它給出了錯誤,因爲我沒有刪除以前創建的.o文件。 –

+0

你顯然必須刪除並重建它。這就是整個觀點:沒有重定位信息的對象代碼。 –