基于GCC,windows首先下载Cygwin:点我
然后安装过程注意选中需要的库:
以Fortran调用C为例:
编辑Fortran文件pz.f90:
编辑C源文件Jean.c
编译:
$gcc -c Jean.c
$gfortran -c pz.f90
生成Jean.o和pz.o目标文件。
我的电脑是intel 酷睿双核32位字长,
gcc编译出的C文件函数名通过nm命令查看如下:
00000000 b .bss
00000000 d .data
00000000 t .text
00000000 T _dis_
U _puts
可知编译出的目标文件函数dis名字前后加了下划线的,这是函数上面宏定义的作用;
再看看fortran编译出的目标文件:
00000000 b .bss
00000000 d .data
00000000 r .rdata
00000000 t .text
00000000 T _MAIN__
U __gfortran_set_options
U _dis_
U _memmove
U _memset
00000000 r _options.0.533
可知也是加了前后下划线的,这样就保证链接的时候能从fortran文件的目标文件里找到c提供的函数,从而保证正确链接。
链接:
$gfortran -o Jean *.o
生成jean.exe
运行:
$./jean
便能看到效果了。
主要注意安装时lib库文件选完整,假如没有完整可重新覆盖安装。还有就是确保链接时彼此能找到并识别所需目标文件,注意fortra和c编译生成目标文件时规则的差异。