有没有一种方法可以控制共享库中符号的命名?具体而言,我正在使用GCC进行一个项目,在其中通过Python中的C-Types访问共享库。这很好用,但最近我在使用建议使用Intel编译器的系统。我可以很好地构建共享对象,但我发现符号的命名约定与intel略有不同。具体而言,当我使用gcc编译时,符号名称看起来像:
__test_function_MOD_read_a_file
英特尔编译的共享对象具有以下符号名称:
test_function_mp_read_a_file__
有没有办法强制保持命名的一致性,或者至少在事后更改符号的名称?
例如,请考虑以下代码test_function.f90
MODULE test_function
CONTAINS
SUBROUTINE read_a_file
PRINT *,'I did a thing!'
END SUBROUTINE
END
编译命令应该长成这个样子:
gfortran -fPIC -c test_function.f90
gfortran -shared -o libtest_function.so test_function.o
gfortran
和英特尔ifort
的外部函数具有一致的名称?” - Employed Russianbind(C)
过程。 - Vladimir F Героям слава