【发布时间】:2012-09-28 10:00:47
【问题描述】:
更新
感谢 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 链接器属性中,库在文件夹 C:/cygwin/lib 中被称为 lapack 和 blas。这会导致编译器和链接器的{$COMMAND} 部分中出现-L"C:/cygwin/lib" -llapack -lblas 部分。 (感谢@vladimir-f 的帮助)
在输出中不再留下任何错误消息。只有我现在在 Eclipse 中得到以下错误,并且没有最终的 .exe 或 bins:
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。任何想法如何解决这个问题?
【问题讨论】:
标签: eclipse fortran lapack photran