带有 Fortran 的 Python 模块:LNK1112`模块机器类型'X86'与目标机器类型'x64'冲突

耀西

所以最近我一直在学习关于编程和编译以及其他东西如何工作的绝对堆栈,但这有点超出了我的深度。目前,我正在尝试安装pyigrf12,以便我可以在 Python 中使用 IGRF(我在其中完成大部分工作)。我的第一个问题是,因为这个模型是用 Fortran 开发的,所以要找到合适的编译器。我使用 MinGW 安装 g77 和 gfortran 等。

每个编译器都会给我不同的错误。当 setup.py 默认使用 g77 时,由于“无效的赋值表单...”错误,我在此过程中出现了几次“失败,退出状态为 1”。所以我重命名了 g77.exe 二进制文件,以便 setup.py 被迫使用 gfortran.exe(我不确定如何指定要使用的编译器,这都是命令行)。

该编译器进一步完成了该过程,但最终以“退出状态为 1112 失败”而终止。查看输出,编译器似乎遇到了“致命错误 LNK1112:模块机器类型‘X86’与目标机器类型‘x64’冲突”。谷歌搜索这个错误,我遇到了几个关于这个问题的论坛。每种情况下提出的解决方案似乎认为我是使用Visual Studio环境,并且可以点击的东西来改变“/ MACHINE:IX86”标志。

这看起来很简单,但是可以在命令行中完成吗?如果是这样,如何?目前我运行 setup.py 脚本所做的就是

python setup.py develop

在命令提示符中(我在 Windows 机器上)。任何帮助将不胜感激!

编辑:我写的整个输出如下。请注意,我没有对任何内容进行任何更改 - 到目前为止我唯一可以控制的是编译器。其他一切都是 pyigrf 的一部分。虽然看起来这个模块的编译可能存在一些问题,但我想知道是否有任何解决方法。因为它看起来像是某种旗帜......我不确定。老实说,希望出现某种奇迹。这里是:

running develop
running build_scripts
running egg_info
running build_src
build_src
building extension "igrf12" sources
f2py options: ['--quiet']
  adding 'build\src.win-amd64-2.7\build\src.win-amd64-2.7\fortranobject.c' to sources.
  adding 'build\src.win-amd64-2.7\build\src.win-amd64-2.7' to include_dirs.
build_src: building npy-pkg config files
writing requirements to pyigrf12.egg-info\requires.txt
writing pyigrf12.egg-info\PKG-INFO
writing top-level names to pyigrf12.egg-info\top_level.txt
writing dependency_links to pyigrf12.egg-info\dependency_links.txt
reading manifest file 'pyigrf12.egg-info\SOURCES.txt'
writing manifest file 'pyigrf12.egg-info\SOURCES.txt'
running build_ext
customize MSVCCompiler
customize MSVCCompiler using build_ext
customize GnuFCompiler
Could not locate executable g77
Could not locate executable f77
customize IntelVisualFCompiler
Could not locate executable ifort
Could not locate executable ifl
customize AbsoftFCompiler
Could not locate executable f90
customize CompaqVisualFCompiler
Could not locate executable DF
customize IntelItaniumVisualFCompiler
Could not locate executable efl
customize Gnu95FCompiler
Found executable D:\MinGW\bin\gfortran.exe
customize Gnu95FCompiler
customize Gnu95FCompiler using build_ext
building 'igrf12' extension
compiling C sources
C:\Users\XXXXX\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ibuild\src.win-amd64-2.7\build\src.win-amd64-2.7 -IC:\ProgramData\Anaconda2\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC /Tcbuild\src.win-amd64-2.7\igrf12module.c /Fobuild\temp.win-amd64-2.7\Release\build\src.win-amd64-2.7\igrf12module.obj
C:\Users\XXXXX\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\cl.exe /c /nologo /Ox /MD /W3 /GS- /DNDEBUG -Ibuild\src.win-amd64-2.7\build\src.win-amd64-2.7 -IC:\ProgramData\Anaconda2\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC /Tcbuild\src.win-amd64-2.7\build\src.win-amd64-2.7\fortranobject.c /Fobuild\temp.win-amd64-2.7\Release\build\src.win-amd64-2.7\build\src.win-amd64-2.7\fortranobject.obj
compiling Fortran sources
Fortran f77 compiler: D:\MinGW\bin\gfortran.exe -Wall -g -ffixed-form -fno-second-underscore -O0
Fortran f90 compiler: D:\MinGW\bin\gfortran.exe -Wall -g -fno-second-underscore -O0
Fortran fix compiler: D:\MinGW\bin\gfortran.exe -Wall -g -ffixed-form -fno-second-underscore -Wall -g -fno-second-underscore -O0
compile options: '-Ibuild\src.win-amd64-2.7\build\src.win-amd64-2.7 -IC:\ProgramData\Anaconda2\lib\site-packages\numpy\core\include -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC -IC:\ProgramData\Anaconda2\include -IC:\ProgramData\Anaconda2\PC -c'
gfortran.exe:f77: fortran/igrf12.f
C:\Users\XXXXX\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0\VC\Bin\amd64\link.exe /DLL /nologo /INCREMENTAL:NO /LIBPATH:d:\mingw\lib\gcc\mingw32\6.3.0 /LIBPATH:d:\mingw\lib /LIBPATH:C:\ProgramData\Anaconda2\libs /LIBPATH:C:\ProgramData\Anaconda2\PCbuild\amd64 /LIBPATH:C:\ProgramData\Anaconda2\PC\VS9.0\amd64 /LIBPATH:C:\ProgramData\Anaconda2\libs /LIBPATH:C:\ProgramData\Anaconda2\PCbuild\amd64 /LIBPATH:C:\ProgramData\Anaconda2\PC\VS9.0\amd64 /EXPORT:initigrf12 build\temp.win-amd64-2.7\Release\build\src.win-amd64-2.7\igrf12module.obj build\temp.win-amd64-2.7\Release\build\src.win-amd64-2.7\build\src.win-amd64-2.7\fortranobject.obj build\temp.win-amd64-2.7\Release\fortran\igrf12.o /OUT:igrf12.pyd /IMPLIB:build\temp.win-amd64-2.7\Release\build\src.win-amd64-2.7\igrf12.lib /MANIFESTFILE:build\temp.win-amd64-2.7\Release\build\src.win-amd64-2.7\igrf12.pyd.manifest
build\temp.win-amd64-2.7\Release\fortran\igrf12.o : fatal error LNK1112: module machine type 'X86' conflicts with target machine type 'x64'
弗拉基米尔·F

从日志看来,您安装了 32 位版本的 gfortran。您需要 64 位版本才能与工具链的其余部分兼容。

确保执行:gfortran -v并检查版本信息。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

来自分类Dev

机器类型“ x64”与目标机器类型“ X86”冲突

来自分类Dev

Qt5Cored.lib(Qt5Cored.dll):模块机器类型“ x64”与目标机器类型“ X86”冲突

来自分类Dev

在带有BIOS的x64机器上启动?

来自分类Dev

使用并行任务时,x86和x64中的数据类型有什么区别

来自分类Dev

使用并行任务时,x86和x64中的数据类型有什么区别

来自分类Dev

有什么办法可以移动x86机器代码?

来自分类Dev

x86呼叫机器码

来自分类Dev

拆解原始x64机器代码

来自分类Dev

x86和x86-64机器代码的区别

来自分类Dev

在Visual Studio 2012中同时将平台目标x86和x64

来自分类Dev

Fortran编译的和C编译的DLL是否应该可以互换导入?(x86目标)

来自分类Dev

Fortran编译的和C编译的DLL是否应该可以互换导入?(x86目标)

来自分类Dev

x86和x64中的ret指令有什么区别?

来自分类Dev

基准软件,x86和x64之间有区别吗?

来自分类Dev

CUDA的x64与x86

来自分类Dev

Office x86与x64

来自分类Dev

CUDA的x64与x86

来自分类Dev

“发送”的OS X冲突类型

来自分类Dev

x64机器中的16位程序

来自分类Dev

无法在Windows 10 x64机器上安装scrapy

来自分类Dev

Java中的x86 80位浮点类型

来自分类Dev

将struct类型的内容推入x86中的堆栈

来自分类Dev

x86中的下划线前缀问题:从C ++函数调用NASM函数在x64中有效,但在x86中失败

来自分类Dev

运行循环时MASM x86访问冲突

来自分类Dev

访问冲突MASM x86组件

来自分类Dev

x86和x64体系结构的汇编语言之间有什么区别?

来自分类Dev

C数据类型'long'-在Intel x86 64位计算机上

来自分类Dev

x86中带有括号和地址的CMP

Related 相关文章

  1. 1

    致命错误 LNK1112:模块机器类型“x64”与通过 vcvarsall.bat x86 运行构建的目标机器类型“X86”冲突

  2. 2

    机器类型“ x64”与目标机器类型“ X86”冲突

  3. 3

    Qt5Cored.lib(Qt5Cored.dll):模块机器类型“ x64”与目标机器类型“ X86”冲突

  4. 4

    在带有BIOS的x64机器上启动?

  5. 5

    使用并行任务时,x86和x64中的数据类型有什么区别

  6. 6

    使用并行任务时,x86和x64中的数据类型有什么区别

  7. 7

    有什么办法可以移动x86机器代码?

  8. 8

    x86呼叫机器码

  9. 9

    拆解原始x64机器代码

  10. 10

    x86和x86-64机器代码的区别

  11. 11

    在Visual Studio 2012中同时将平台目标x86和x64

  12. 12

    Fortran编译的和C编译的DLL是否应该可以互换导入?(x86目标)

  13. 13

    Fortran编译的和C编译的DLL是否应该可以互换导入?(x86目标)

  14. 14

    x86和x64中的ret指令有什么区别?

  15. 15

    基准软件,x86和x64之间有区别吗?

  16. 16

    CUDA的x64与x86

  17. 17

    Office x86与x64

  18. 18

    CUDA的x64与x86

  19. 19

    “发送”的OS X冲突类型

  20. 20

    x64机器中的16位程序

  21. 21

    无法在Windows 10 x64机器上安装scrapy

  22. 22

    Java中的x86 80位浮点类型

  23. 23

    将struct类型的内容推入x86中的堆栈

  24. 24

    x86中的下划线前缀问题:从C ++函数调用NASM函数在x64中有效,但在x86中失败

  25. 25

    运行循环时MASM x86访问冲突

  26. 26

    访问冲突MASM x86组件

  27. 27

    x86和x64体系结构的汇编语言之间有什么区别?

  28. 28

    C数据类型'long'-在Intel x86 64位计算机上

  29. 29

    x86中带有括号和地址的CMP

热门标签

归档