为FreePascal / Lazarus包装Fortran库

时间:2012-02-23 17:08:17

标签: fortran freepascal lazarus

我想在使用DIERCKX的FreePascal编写的程序中使用Lazarus库(用Fortran编写)的一些例程。因为我对Lazarus完全不熟悉,所以我想知道要走哪条路:哪些步骤是必要的,我该怎么办呢?

修改 在Linux上开发,但是我创建的库需要在Windows上编译,因为它将在Delphi程序中使用。 gfortran和g95安装在我的Linux机器上;但如果没有Cygwin和没有Intel Fortran,能够在Windows上编译它会很好。

1 个答案:

答案 0 :(得分:3)

我认为你在这里过于复杂。

拉撒路不等于德尔福。

  • Delphi无法在基本程序级别之外访问Free Pascal构造。 (C兼容部分)。如果您的想法是使用FPC抽象GNU世界,然后从Delphi调用它,那将失败。
  • Delphi无法静态链接到gcc库。要访问gcc原始代码,您必须将其转换为DLL,并从Delphi加载。
  • FPC可以静态链接到gcc库(cygwin,mingw),但只能调用plain  没有修改或语言特定类型的过程/函数。
  • FPC当然也可以在DLL中使用gcc原始代码。
  • 至于从FPC接近Fortran代码,准备它是否需要从C调用,确保它有效,然后使用CDECL调用约定将相关头转换为Pascal(有关翻译的许多示例,请参阅FPC源代码库) C标题)

对于其他人来说,如果你解释一下你到底被困在哪里会更清楚。