Ich möchte eine FORTRAN-Unterroutine von R ausführen. Ich habe gelesen, dass ich ein gemeinsames Objekt (.so-Datei) zum Ausführen der Subroutine benötigen. Zum Erstellen des gemeinsamen Objekts habe ich erfolgreich das FORTRAN-Unterprogramm kompiliert. Aber wenn das Objekt geteilt Erzeugen der gab es die folgenden FehlerGemeinsames Objekt in 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
den Befehl gegeben war gfortran -shared -o temain.so *.o
Was kann ich tun? Vielen Dank im Voraus
Es gibt den gleichen Fehler –
Das löste es (mit vielen Warnungen). Es gab zuvor einen Fehler, weil ich die zuvor erstellte .o-Datei nicht löschte. –
Sie _obviously_ müssen entfernen und neu erstellen. Das war der springende Punkt: Objektcode ohne Umzugsinformationen. –