在Eclipse-Photran中为Windows上的fortran编译器配置LAPACK

时间:2012-09-28 10:00:48

标签: eclipse fortran lapack photran

更新

感谢Vladimir对图书馆的有用见解。我采取了另一种方法,首先在ubuntu中开发(这比使用Eclipse / Cygwin /更容易搞乱......现在我正在尝试移植到Windows,这相当不错,但是我对此也有一些疑问,发布在这里:Problems with porting a fortran program from ubuntu to windows

问题

我目前有以下设置,无法配置lapack库,以便我的fortran代码可以编译:

  • Windows 7
  • Cygwin安装(适用于GNU fortran),添加到Windows PATH
  • lapack和liblapack-devel与cygwin一起安装
    • 导致文件夹C:/ cygwin / lib中的liblapack.a和libblas.a

在我的程序中,我使用以下代码调用lapack库

program myProgram
    !use lapack (stays commented now)
    ...

在Eclipse中,我使用了以下设置(使用Photran包):

  • Fortran项目:Windows上的可执行GNU fortran(GCC工具链)
  • GNU fortran编译器:gfortran ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}
  • GNU fortran链接器:gfortran ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}

我编译了库libblas.a和liblapack.a,用作Windows的静态库,它们位于C:/ cygwin / lib文件夹中。在GNU fortran链接器属性中,文件夹在lapack文件夹中称为blasC:/cygwin/lib。这会在编译器和链接器的-L"C:/cygwin/lib" -llapack -lblas部分中生成部分{$COMMAND}。 (感谢@ vladimir-f的帮助)

在输出中,不再有任何错误消息。现在我只在Eclipse中遇到以下错误,没有最终的.exe或bin:

Errors occured during the build.
    Errors running builder 'CDT Builder' on project 'Hamfem'
    Internal error building project Hamfem configuration
    Release
    java.lang.NullPointerException
Internal error building project Hamfem configuration
Release
java.lang.NullPointerException

但是,构建的结果仍然是可执行文件,在本例中称为Hamfem.exe。运行此文件会导致错误消息(而不是例程):The program can't start because cyglapack-0.dll is missing from your computer. Try reinstalling the program to fix this problem.

该文件当前位于C:/cygwin/lib/lapack/但我希望运行该程序不需要此文件,因此我可以在不同的计算机上运行它。有人可以合作吗?

其次,当复制粘贴.exe所在文件夹中的.dll文件时,它会运行一小段时间,生成一个stackdump文件。由于“构建工作区”错误,我无法在Eclipse-Photran中使用调试器。当我想在Eclipse中作为本地Fortran程序运行它时,Eclipse会给出消息Binary not found。有任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

问题出在这里

L/lib/lapack –llapack

尝试将其更改为

-L/lib/lapack –llapack

可能是你Makefile

gfortran -funderscoring -O3 -Wall -c -fmessage-length=0 -L/lib/lapack -llapack -o 

并确保lapack.mod确实位于/lib/lapack,而Cygwin可能是C:\cygwin\lib\lapack