2012-02-23 81 views
3

我想在使用FreePascal编写的程序中使用DIERCKX库(用Fortran编写)的一些例程Lazarus。由于我对拉撒路完全陌生,所以我想知道哪条路要走:哪些步骤是必要的,我该如何解决这个问题?包装FreePascal/Lazarus的Fortran库

编辑 开发在Linux上,但我创建库将需要在Windows上编译,因为它会在一个Delphi程序中使用。 gfortran和g95安装在我的Linux机器上;但是如果没有Cygwin和没有英特尔Fortran,就可以在Windows上进行编译。

+2

你应该可以从FreePascal调用FORTRAN子程序,就像你可以调用C一样:http://lists.freepascal.org/lists/fpc-pascal/2009-January/019917.html问:你在Linux上?问:你在使用gfortran吗? – paulsm4 2012-02-23 17:13:24

+0

@ paulsm4编辑的问题来回答你的评论。视窗。没有Cygwin,没有任何事情。 – 2012-02-24 17:04:44

回答

3

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

拉撒路不等于德尔福。

  • 德尔福不能访问超出基本程序级别的免费Pascal结构。 (C兼容部分)。如果你的想法是用FPC抽象GNU世界,然后从Delphi中调用它,那就会失败。
  • Delphi无法静态链接到gcc库。要访问gcc源代码,你必须把它变成一个DLL,并从Delphi中加载它。
  • FPC可以静态链接到gcc库(cygwin,mingw),但只能调用普通的程序/函数而不会改变或语言特定的类型。
  • FPC当然也可以在DLL中使用gcc源代码。
  • 至于从FPC办法Fortran代码,如果它需要由C调用,使准备可以肯定它的工作原理,然后将其转换相关的标头帕斯卡与CDECL调用约定(见FPC源代码回购为翻译的例子很多C头)

对于其他问题,如果你解释你到底在哪里被卡住,那么它会更清晰。