用FreePascal / Lazarus包装Fortran库

3
我想在用FreePascal编写的Lazarus程序中使用DIERCKX库(该库是用Fortran编写的)的一些例程。由于我对Lazarus完全陌生,我想知道应该怎么做:需要哪些步骤,以及如何进行? 编辑: 在Linux上开发,但创建的库需要在Windows上编译,因为它将在Delphi程序中使用。我的Linux系统上安装了gfortran和g95;但最好能在没有Cygwin和英特尔Fortran的情况下在Windows上编译。

2
你应该能够从FreePascal调用FORTRAN子程序,就像你可以调用C一样:http://lists.freepascal.org/lists/fpc-pascal/2009-January/019917.html 问题:你在使用Linux吗?问题:你在使用gfortran吗? - paulsm4
@paulsm4 根据您的意见修改了问题。Windows系统,无需Cygwin和ifort。 - andreas-h
1个回答

3
我认为你在这里过于复杂化了情况。
Lazarus不等同于Delphi。
Delphi无法访问超出基本过程级别的Free Pascal结构。如果你的想法是用FPC抽象GNU世界,然后从Delphi调用它,那么会失败。
Delphi无法静态链接到gcc库。要访问gcc源代码,必须将其转换为DLL,并从Delphi加载。
FPC可以静态链接到gcc库(cygwin,mingw),但只能调用普通的过程/函数,不能使用语言特定类型。
当然,FPC也可以在DLL中使用来自gcc的代码。
至于从FPC处理Fortran代码,需要准备好如果需要从C调用它,则确保其正常工作,然后使用CDECL调用约定(请参阅FPC源代码存储库以获取许多已翻译的C头文件的示例)转换相关标题为Pascal。
对于其余部分,如果你解释一下你卡在哪里会更清楚。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接