来自Fortran的C代码:致命错误:stdlib.h:没有这样的文件或目录

时间:2016-04-21 10:04:59

标签: c fortran

我正在尝试使用gfortran编译Fortran源代码(我没写过)。该代码调用C函数drand48.c,其源代码位于同一文件夹中。

问题是,当我这样做时:

gfortran -o filename.exe filename.f drand48.c

我收到以下错误消息:

drand48.c:1:20: fatal error: stdlib.h: No such file or directory

#include <stdlib.h>
                    ^
compilation terminated.

现在,我确信我有标准库,因为我一直在C中使用它(我只是使用`#include&lt;'来编译另一个C代码,然后就可以了。)

我该怎么办?谢谢!

PS我的操作系统是OSX

1 个答案:

答案 0 :(得分:2)

您不能使用相同的编译器来编译C和Fortran。相反,您应该首先使用适当的编译器从每个源文件编译对象:

gcc -c -o ccode.o ccode.c
gfortran -c -o fcode fcode.f

-c选项告诉编译器在这种情况下创建对象,而不是可执行文件。

然后链接这些对象。因为Fortran需要链接到它的运行时库,所以使用你用来创建Fortran对象的Fortran编译器来链接所有对象并创建一个可执行文件:

gfortran ccode.o fcode.o -o myprogram

如果您经常这样做,您应该设置一个Makefile。