我的设置如下:
-
-
Eclipse:Helios 3.6.1 64位,带CDT
还有Photran
-
环境:1.6.0_21
-
(构建17.0-b17,混合模式)
-
Cygwin 1.7.2(32位)
代码构建和运行良好,尽管在Eclipse的Problems选项卡中出现了以下两个警告
Description Resource Path Location Type
Error launching external scanner info generator (gcc -E -P -v -dD C:/Users/Joe/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c) HelloFortran Unknown C/C++ Problem
Error launching external scanner info generator (gcc -E -P -v -dD C:/Users/Joe/workspace/.metadata/.plugins/org.eclipse.cdt.make.core/specs.c) HelloFortran Unknown C/C++ Problem
当尝试将应用程序调试为本地Fortran应用程序时出现问题,这将导致以下错误:
cygwin warning:
MS-DOS style path detected: C:\Users\Joe\workspace\HelloFortran
Preferred POSIX equivalent is: /cygdrive/c/Users/Joe/workspace/HelloFortran
.gdbinit: No such file or directory.
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
auto-solib-add on
Undefined command: "auto-solib-add". Try "help".
Error: dll starting at 0x76ba0000 not found.
Error: dll starting at 0x75230000 not found.
Error: dll starting at 0x76ba0000 not found.
Error: dll starting at 0x76aa0000 not found.
[New thread 7060.0x10dc]
[New thread 7060.0x16c0]
我猜没有找到入口点,因为它需要32/64位的DLL并得到另一种类型(如果我错了,请纠正我)。GDB版本如下:
GNU gdb 6.8.20080328 (cygwin-special)
GDB configured as "i686-pc-cygwin"
从命令行运行GDB可以得到:
[New thread 5768.0x15a0]
Error: dll starting at 0x76ba0000 not found.
Error: dll starting at 0x75230000 not found.
Error: dll starting at 0x76ba0000 not found.
Error: dll starting at 0x76aa0000 not found.
[New thread 5768.0x46c]
hellofortran () at ../HelloFortran.f90:1
1 program HelloFortran
Current language: auto; currently fortran
如果我读得正确,应用程序确实在GDB中运行,我可以单步执行,但是缺少的DLL错误是什么?
依赖项Walker为我的HelloFortran.exe提供了以下错误
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
丢失的DLL似乎是IESHIMS.DLL(2),根据我的快速研究,这似乎不是一个大问题,但我不认为我的应用程序需要引用此DLL的任何原因,因此我认为这不会导致GDB中的错误。
所有模块的CPU类型均为x64,除了:
CYGGCC_S-1.DLL
CYGGFORTRAN-3.DLL
CYGWIN1.DLL
HELLOFORTRAN.EXE
我担心丢失的DLL错误可能会损害我正确调试程序的能力(尽管程序最终将在基于Unix的HPC上运行,因此我不应该在那里遇到这些问题,因为所有这些DLL似乎都与Cygwin有关)。
我的问题:
-
为什么会出现缺少DLL的错误?(切换到32位版本的Eclipse/JVM等会解决这个问题吗?)
-
好的继续,还是我来解决
缺少的DLL错误(如果是,
编辑:我的测试程序如下:
program HelloFortran
! Force variable declaration
implicit none
! Print 'Hello World!' to the main output
write (*,*) 'Hello World!'
! End program
end program HelloFortran