如何在C程序中使用Fortran共享库?

时间:2014-06-13 02:15:36

标签: c fortran shared-libraries

我已经将几个子程序放入.f95文件中,用gfortran -shared -fPIC -o bin/Debug/libpr10.so main.f95编译它,现在我想在我的C程序中使用该库中的一些子程序。我怎么做(语法上)?我是否必须制作任何标题"在Fortran库中,我应该声明我想在库外使用的子程序(如果它是C,我必须这样做)? 如果我只是告诉链接器库在哪里并尝试调用main()中的任何子例程我会收到错误

更新我不想混合fortran和C!我只想使用Fortran共享库中的一个子例程,甚至是w / o参数。尽管我已经指出了通往.so图书馆的路径,但它已经隐藏了""隐形"对于C程序!问题是如何告诉C程序实际上有一个我想要调用的子程序。

如果我在"混合"想法,纠正我。

1 个答案:

答案 0 :(得分:1)

好吧,我不认为这个解决方案是通用的,但是对于Microsoft Visual Studio,它应该在子例程名称之前为__stdcall,对于gcc,它应该是子例程名称之后的_符号例如我们想调用名为menu的子程序,所以我们将menu_();放入main函数。