Я пытаюсь вызвать код FORTRAN из R. Для этого я создаю файл .so, давая команду R CMD SHLIB filename.f
Файл .so создается без каких-либо предупреждений (!!). Чтобы привести файл в R, я даю следующую команду в р
dyn.load("filename.so")
Файл загружается, как показано, когда я даю команду getLoadedDlls()
в R. Но когда я пытаюсь запустить его с помощью .Fortran("filename")
, он выдает ошибку
Ошибка в .Fortran("имя файла"): имя символа Fortran "имя файла" отсутствует в таблице загрузки
.Fortran
может попытаться добавить это автоматически. Существуют различные инструменты для отображения содержимого файла dll, чтобы вы могли попытаться выяснить, какое имя на самом деле используется, например stackoverflow.com/ a/375284 Это может помочь определить, используется ли правильное имя. - person d_1999   schedule 14.06.2016.so
, поэтому вы, вероятно, работаете в Linux, и в этом случае вы можете попробовать командуnm
, чтобы посмотреть, какие символы присутствуют в библиотеке. - person d_1999   schedule 14.06.2016.Call("filename")
? - person J_F   schedule 14.06.2016readelf
(см. stackoverflow.com/q/34732) или попробоватьnm filename.so | grep -i X
, гдеX
— это имя подпрограммы, которую вы пытаюсь позвонить. - person d_1999   schedule 14.06.2016.Fortran("filename_")
. Но это только предположение - person J_F   schedule 14.06.2016