更新
感谢弗拉基米尔对图书馆的有益见解。我采用了另一种方法,首先在ubuntu中进行开发(这比处理Eclipse/Cygwin/.现在我正在尝试移植到windows,这是相当好的,但是我也有一些问题,张贴在这里:Problems with porting a fortran program from ubuntu to windows
问题
目前,我有以下设置,无法配置该漏洞库,以便使我的fortran代码能够编译:
在我的程序中,我使用以下代码调用了program库
program myProgram
!use lapack (stays commented now)
...在Eclipse中,我使用了以下设置(对于Photran包):
gfortran ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}gfortran ${COMMAND} ${FLAGS} ${OUTPUT_FLAG} ${OUTPUT_PREFIX}${OUTPUT} ${INPUTS}我编译了libblas.a和liblapack.a库,作为静态库用于windows,它们位于C:/cygwin/lib文件夹中。在GNU链接器属性中,这些库在文件夹lapack中被称为blas和C:/cygwin/lib。这将导致编译器和链接器的-L"C:/cygwin/lib" -llapack -lblas部分中的{$COMMAND}部分。(谢谢@vladimir-f )
在输出中,不再留下错误消息。只有我现在在Eclipse中得到了以下错误,没有最终的.exe或回收箱:
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/中,但我希望不需要这个文件来运行程序,这样我就可以在不同的计算机上运行它。有人能在这方面合作吗?
其次,当复制粘贴.dll文件在.exe所在的文件夹中时,它运行一秒钟,生成一个堆栈转储文件。由于“”错误,我无法在Eclipse中使用调试器。当我想在Eclipse中作为本地Fortran程序运行它时,Eclipse会给出消息Binary not found。有什么办法解决这个问题吗?
发布于 2012-09-28 10:08:32
问题就在这里
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。
https://stackoverflow.com/questions/12637822
复制相似问题