У меня возникли проблемы с компиляцией Fortran в модуль расширения Python, когда код Fortran включает вызовы функции печати или записи.F2PY не может скомпилировать Fortran с печатью или написать
Я нахожусь в Windows 8.1 с gfortran (через mingw-w64) и установленным MSVC-компилятором для Python 2.7. Используемый дистрибутив Python - Anaconda.
test.f
subroutine test (a)
integer, intent(out) :: a
print *,"Output from test"
a = 10
end subroutine test
Запуск f2py -c -m --fcompiler=gnu95 test test.f90
Я вижу эти ошибки:
test.o : error LNK2019: unresolved external symbol _gfortran_st_write referenced in function test_
test.o : error LNK2019: unresolved external symbol _gfortran_transfer_character_write referenced in function test_
test.o : error LNK2019: unresolved external symbol _gfortran_st_write_done referenced in function test_
.\test.pyd : fatal error LNK1120: 3 unresolved externals
Но он отлично работает, когда я закомментируйте печать (или запись) заявление.
Странная вещь, которую я заметил, заключается в том, что она, похоже, использует Python для ArcGIS.
compile options: '-Ic:\users\[username]\appdata\local\temp\tmpqiq6ay\src.win-amd64-
2.7 -IC:\Python27\ArcGISx6410.3\lib\site-packages\numpy\core\include -IC:\Python
27\ArcGISx6410.3\include -IC:\Python27\ArcGISx6410.3\PC -c'
gfortran.exe:f90: test.f90
Любая помощь была бы принята с благодарностью.
Вы не правильно связываете библиотеку времени исполнения gfortran (libgfortran). Почему вы используете '--fcompiler = gnu95'? –