我必须在Solaris下构建一个C共享库(.so),以便将其用作Exelis IDL语言的DLM(动态可加载模块)。
此C库必须使用Fortran模块中包含的一些Fortran f90函数。
我可以编译C和Fortran代码(使用-fpic,-G,...)但是我从C调用fortran库时遇到问题。
在我的.so文件中,模块中包含的Fortran函数被命名 module.function的
例如: $ nm idl_spi.so [290] | ... | FUNC | GLOB | 0 | 15 spi_m_libscient.spi_scient_init_common _
在我的C代码中,我无法使用以下任何一种:
spi_scient_init_common _()
=>在库中找不到符号(未完成的名称)
spi_m_libscient.spi_scient_init_common _()
=>未知结构spi_m_libscient
有没有办法从C调用Fortran module_name.function_name()?
或者在编译module.function()时更改Fortran行为, 重命名例如objet文件中的module__function
我可以找到任何f90命令行选项