消息关闭
    暂无新消息!

python调用fortran问题

问题作者 : Josephson2017-07-26发布
最近用Python调用Fortran,安装网上的方法试,当我是python ....\f2py.py -c -m foo foo.f90时,有错误如下

foomodule.obj : warning LNK4197: 多次指定导出“initfoo”;使用第一个规范
  正在创建库 c:\users\dell\appdata\local\temp\tmpc8ofxo\Release\users\dell\appdata\local\temp\tmpc8ofxo\src.win-amd64-2.7\foo.lib 和对象 c:\users\dell\appdata\local\temp\tmpc8ofxo\Release\users\dell\appdata\local\temp\tmpc8ofxo\src.win-amd64-2.7\foo.exp
foo.o : error LNK2019: 无法解析的外部符号 _gfortran_st_write,该符号在函数 nmb_ 中被引用
foo.o : error LNK2019: 无法解析的外部符号 _gfortran_transfer_character_write,该符号在函数 nmb_ 中被引用
foo.o : error LNK2019: 无法解析的外部符号 _gfortran_transfer_integer_write,该符号在函数 nmb_ 中被引用
foo.o : error LNK2019: 无法解析的外部符号 _gfortran_st_write_done,该符号在函数 nmb_ 中被引用
.\foo.pyd : fatal error LNK1120: 4 个无法解析的外部命令


后来去google上查了下 加入-lgfortran  即\f2py.py -c -m foo foo.f90 -lgfortran
出现错误如下:
LINK : fatal error LNK1181: 无法打开输入文件“gfortran.lib”
error: Command "D:\Microsoft Visual Studio 14.0\VC\BIN\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:D:\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev0\mingw64\lib\gcc\x86_64-w64-mingw32\7.1.0 /LIBPATH:D:\mingw-w64\x86_64-7.1.0-posix-seh-rt_v5-rev0\mingw64\x86_64-w64-mingw32\lib /LIBPATH:D:\Python27\libs /LIBPATH:D:\Python27\PCbuild\amd64 /LIBPATH:D:\Python27\libs /LIBPATH:D:\Python27\PCbuild\amd64 gfortran.lib /EXPORT:initfoo c:\users\dell\appdata\local\temp\tmp_b0bmb\Release\users\dell\appdata\local\temp\tmp_b0bmb\src.win-amd64-2.7\foomodule.obj c:\users\dell\appdata\local\temp\tmp_b0bmb\Release\users\dell\appdata\local\temp\tmp_b0bmb\src.win-amd64-2.7\fortranobject.obj c:\users\dell\appdata\local\temp\tmp_b0bmb\Release\foo.o /OUT:.\foo.pyd /IMPLIB:c:\users\dell\appdata\local\temp\tmp_b0bmb\Release\users\dell\appdata\local\temp\tmp_b0bmb\src.win-amd64-2.7\foo.lib /MANIFESTFILE:c:\users\dell\appdata\local\temp\tmp_b0bmb\Release\users\dell\appdata\local\temp\tmp_b0bmb\src.win-amd64-2.7\foo.pyd.manifest" failed with exit status 1181

在网上查询未果,不知道有没有大牛可以解决这个问题

2个回答