我在AIX上安装了gcc
和gfortran
,它们工作正常。除此之外,我将它们用于一些可通过头文件访问的库(C中的.h
)。非常相同的库功能的模块(.mod
在FORTRAN)使用,但你知道它们的使用是可选的:如果我从我的Fortran源代码中注释掉从c头创建mod文件
use mylib
implicit none
,一切工作正常。问题是,我不想注释掉implicit none
,所以我必须保持use mylib
太多,否则我会得到一堆
Error: Symbol 'foo' at (1) has no IMPLICIT type
错误。而且,正如你知道的,.mod文件是编译器相关的,所以我不能用那些我有,否则gfortran会吐:
Fatal Error: File 'mylib.mod' opened at (1) is not a GFORTRAN module file
理论上我可以重新编译所有与gfortran库,但最有可能它会由于各种原因失败(如果不是这样,它仍然是一项艰巨的任务)。
所以我想知道是否有一种方法来预编译.mod
模块中的.h
标题,只提供所需的接口信息。不幸的是,我无法找到关于此的任何信息。
你知道这些库是用C还是fortran编写的吗?您可以通过检查C头文件来解决这个问题。我的猜测是这些库将用C语言编写,因为fortran库往往不兼容不同的供应商,并且你暗示你的代码链接没有问题。 – DaveP 2010-11-15 07:31:07