Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Compiler construction 用2个编译器编译fortran程序_Compiler Construction_Fortran - Fatal编程技术网

Compiler construction 用2个编译器编译fortran程序

Compiler construction 用2个编译器编译fortran程序,compiler-construction,fortran,Compiler Construction,Fortran,我正在尝试运行一个用fortran编写的程序,其中子程序是用gfortran编译的,主程序是用ifort编译的: 下面是源代码: 子程序: 主要代码: 读取的文件是: 然后我像这样编译: gfortran -c testsub.f ar rcs libtest.a testsub.o ifort -o testexe test.f -L./ -ltest -L/.../gcc/4.7.1/lib64 -lgfortran 我得到了: At line 4 of file testsub.f

我正在尝试运行一个用fortran编写的程序,其中子程序是用gfortran编译的,主程序是用ifort编译的:

下面是源代码:

子程序: 主要代码: 读取的文件是: 然后我像这样编译:

gfortran -c testsub.f

ar rcs libtest.a testsub.o

ifort -o testexe test.f -L./ -ltest -L/.../gcc/4.7.1/lib64 -lgfortran
我得到了:

At line 4 of file testsub.f (unit = 10, file = 'fort.10')
Fortran runtime error: End of file
看起来逻辑单元没有被赋予子例程。 我应该在某处添加一个编译选项。。。但我真的不知道在什么地方。。。 回答“如果我用同一个编译器编译两个文件会怎么样?”:程序运行得很好:)


所以如果有人有任何想法…

这是行不通的。当您在主程序中打开文件时,ifort库内部的某个地方将打开该文件,并存储与该文件相关的某些状态。GFortran对ifort运行时库的内部状态一无所知,并尝试在其自身的运行时库状态下查找该单元,但显然失败。

这不起作用。当您在主程序中打开文件时,ifort库内部的某个地方将打开该文件,并存储与该文件相关的某些状态。GFortran对ifort运行时库的内部状态一无所知,并试图在其自身的运行时库状态下查找该单元,但显然失败了。

我非常好奇,想知道您为什么要进行这种自我鞭笞行为!英特尔文档似乎表明这是不可能的:我正在使用一些库,有时我们真的不知道它们是用哪个编译器构建的,因此我想知道是否可能。。。但看起来不是…在这种情况下,我建议用十六进制编辑器检查库,并寻找任何合理的文本字符串,如版权声明,这可能有助于确定使用了哪种编译器。我很好奇,知道你为什么要进行这种自我鞭挞的行为!英特尔文档似乎表明这是不可能的:我正在使用一些库,有时我们真的不知道它们是用哪个编译器构建的,因此我想知道是否可能。。。但看起来不是…在这种情况下,我建议使用十六进制编辑器检查库,并查找任何合理的文本字符串,如版权声明,这可能有助于确定使用了哪个编译器。好的,非常感谢您的澄清。我不会在这个问题上再浪费时间了。好的,非常感谢你的澄清。我不打算在这个问题上再浪费时间了。
1
2
3
4
5
6
7 5 6 8
23
gfortran -c testsub.f

ar rcs libtest.a testsub.o

ifort -o testexe test.f -L./ -ltest -L/.../gcc/4.7.1/lib64 -lgfortran
At line 4 of file testsub.f (unit = 10, file = 'fort.10')
Fortran runtime error: End of file