小编Laz*_*zer的帖子

Fortran共享库中的符号命名,intel vs gcc?

有没有办法控制共享库中符号的命名?具体来说,我一直在使用GCC进行一个项目,我们通过Python中的C-Types访问共享库.这很好用,但是最近我一直在使用建议使用英特尔编译器的系统.我可以很好地构建共享对象,但我发现与intel相比,这些符号的命名约定略有不同.特别是当我使用gcc编译时,符号名称如下所示:

__test_function_MOD_read_a_file
Run Code Online (Sandbox Code Playgroud)

英特尔编译的共享对象具有如下符号名称:

test_function_mp_read_a_file__
Run Code Online (Sandbox Code Playgroud)

有没有办法强制命名的一致性或至少在事后改变符号的名称?

例如,考虑以下代码test_function.f90

MODULE test_function
   CONTAINS
   SUBROUTINE read_a_file
      PRINT *,'I did a thing!'
   END SUBROUTINE
END
Run Code Online (Sandbox Code Playgroud)

编译行看起来应该是这样的

gfortran -fPIC -c test_function.f90
gfortran -shared -o libtest_function.so test_function.o
Run Code Online (Sandbox Code Playgroud)

fortran shared-libraries gfortran

2
推荐指数
1
解决办法
251
查看次数

标签 统计

fortran ×1

gfortran ×1

shared-libraries ×1